Assignment Operator in GtkWidget
- From: jalkadir gosonic ca
- To: gtk-list gnome org
- Subject: Assignment Operator in GtkWidget
- Date: Wed, 28 Sep 2005 16:34:40 -0600 (CST)
In the constructor I assigned values to the two variables,
namespace jme{
class Data{
public:
std::string str;
GtkWidget* obj;
public:
Data(){str = ""; obj = gtk_window_new(GTK_WINDOW_TOPLEVEL);}
void setStr(std::string ps){ str = ps;}
void setObj(GtkWidget* o){obj = o;}
};
}
and as soon as I get the value for the jme::Data::str variable, I replace
the value, but for jme::Data::obj, I replace the value as soon as the
GtkWidget::MainMenuWin value is aquired.
But, for some reason, I am unable to use the assignment operator on
GtkWidget objects.
What should I do now?
The code is here:
namespace jme{
class Data{
public:
std::string str;
GtkWidget* obj;
public:
Data(){str = ""; obj = gtk_window_new(GTK_WINDOW_TOPLEVEL);}
void setStr(std::string ps){ str = ps;}
void setObj(GtkWidget* o){obj = o;}
};
}
//Declare the objects
GtkWidget* MainMenueWin;
GtkWidget* VBx;
GtkWidget* Label;
GtkWidget* Separator;
GtkWidget* btnExit;
GtkWidget* btnCreateAccount;
GtkWidget* btn2;
GtkWidget* btn3;
GtkWidget* btn4;
GtkWidget* btn5;
jme::Data* data;
std::string msg("Under Comstruction ... I am very sorry, but this \
feature has not been implemented yet. Please check \
my email me for any new updates on this program \
Jamiil_Abdullah_Alqadir hotmail com");
data->Data(msg);)
void GeneralMsg(GtkButton* button, gpointer d);
void Quit(GtkButton* , gpointer);
gboolean SystemQuit(GtkWidget*, GdkEvent*, gpointer);
//Callbacks
void Quit(GtkButton* was_clicked, gpointer user_data){
gtk_main_quit();
}
gboolean SystemQuit(GtkWidget* widget, GdkEvent* event, gpointer user_data){
gtk_widget_destroy(widget);
gtk_main_quit();
return(TRUE);
//return(FALSE);
}
//-------
int main(int argc, char *argv[]){
// 1. Initialize the environment
gtk_set_locale ();
gtk_init(&argc, &argv);
//-liconv -liconv
// 2. Create Widgets
MainMenueWin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//gtk_window_new(GTK_WINDOW_TOPLEVEL);
VBx = gtk_vbox_new(FALSE,10);
Label = gtk_label_new("Jaime");
Separator = gtk_hseparator_new();
btnCreateAccount = gtk_button_new_with_label("Create");
btn2 = gtk_button_new_with_label("Unknown");
btn3 = gtk_button_new_with_label("Unknown");
btn4 = gtk_button_new_with_label("Unknown");
btn5 = gtk_button_new_with_label("Unknown");
btnExit = gtk_button_new_with_label("Exit");
// Information for GeneralMessage
data->setObj(MainMenueWin);
// 3. Set attributs
gtk_window_set_title(GTK_WINDOW(MainMenueWin), "Jaime");
gtk_window_set_policy(GTK_WINDOW(MainMenueWin), //which_window
FALSE, // allow_shrink
FALSE, // allow_grow
FALSE); // auto_shrink
gtk_container_set_border_width(GTK_CONTAINER(MainMenueWin),15);
gtk_widget_set_name(MainMenueWin,"Gtk++ One, dos");
gtk_widget_set_name(VBx,"vertical box");
gtk_widget_set_name(Label,"Label");
gtk_widget_set_name(Separator, "Separator");
// 4. Register CallBacks
// These three callback fun' are only to exit the application
g_signal_connect( GTK_OBJECT(btnExit), "clicked",
G_CALLBACK(Quit), NULL);
g_signal_connect( GTK_OBJECT(MainMenueWin), "delete-event",
GTK_SIGNAL_FUNC(SystemQuit), NULL);
g_signal_connect(GTK_OBJECT(MainMenueWin), "destroy",
G_CALLBACK(SystemQuit), NULL);
g_signal_connect(GTK_OBJECT(btnCreateAccount), "clicked",
G_CALLBACK(GeneralMsg),
reinterpret_cast<gpointer>(&data));
g_signal_connect(GTK_OBJECT(btn2), "clicked",
G_CALLBACK(GeneralMsg),
reinterpret_cast<gpointer>(&data));
g_signal_connect(GTK_OBJECT(btn3), "clicked",
G_CALLBACK(GeneralMsg),
reinterpret_cast<gpointer>(&data));
g_signal_connect(GTK_OBJECT(btn4), "clicked",
G_CALLBACK(GeneralMsg),
reinterpret_cast<gpointer>(&data));
g_signal_connect(GTK_OBJECT(btn5), "clicked",
G_CALLBACK(GeneralMsg),
reinterpret_cast<gpointer>(&data));
// 5. Define instance hirarchy (pack the widgets)
gtk_container_add(GTK_CONTAINER(MainMenueWin), VBx);
gtk_box_pack_start_defaults(GTK_BOX(VBx), Label);
gtk_box_pack_start(GTK_BOX(VBx), btnCreateAccount, FALSE, FALSE,1);
gtk_box_pack_start(GTK_BOX(VBx), btn2, FALSE, FALSE,1);
gtk_box_pack_start(GTK_BOX(VBx), btn3, FALSE, FALSE,1);
gtk_box_pack_start(GTK_BOX(VBx), btn4, FALSE, FALSE,1);
gtk_box_pack_start(GTK_BOX(VBx), btn5, FALSE, FALSE,1);
gtk_box_pack_start(GTK_BOX(VBx), Separator, FALSE,FALSE, 1);
gtk_box_pack_start_defaults(GTK_BOX(VBx), btnExit);
// 6. Show the Widgets
gtk_widget_show_all(MainMenueWin);
// 7. Processing loop
gtk_main();
//if (data) { delete data; }
std::cerr << "Assalam Alaykum" << std::endl;
return 0;
}
void GeneralMsg(GtkButton* button, gpointer p) {
Data* d;
GtkWidget* label;
GtkWidget* dialog;
try {
dialog = new GtkWidget;
label = new GtkWidget;
//d = new Data();
} catch(std::exception& e) { std::cout << e.what() << std::endl;}
try{d = reinterpret_cast<Data*>(p);}
catch(std::exception& e){std::cerr << e.what() << std::endl;}
dialog = gtk_message_dialog_new(
reinterpret_cast<GtkWindow*>(d->obj),
//Parent
static_cast<GtkDialogFlags>(GTK_DIALOG_MODAL |
GTK_DIALOG_DESTROY_WITH_PARENT),
//Flags
reinterpret_cast<GtkMessageType>(GTK_MESSAGE_WARNING), //
Message type
reinterpret_cast<GtkButtonsType>(GTK_BUTTONS_OK),
//Button type
d->str.c_str()); //Message format
// Destroy the dialog when the user responds to it (e.g. clicks a button)
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
//delete d;
delete dialog;
delete label;
}
--
* You cannot exercise your power to a point of humiliation.
- Jean Chretien
* It's amazing how the small seeds of distrust and misunderstanding can
yield a crop of hate and death...
* If that document has fine printing anywhere, just chuck it in the garbage
- Jorge Escalante
Ma'assalama! Adiós! bye!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]