BOOL CEmoticonDlg::OnInitDialog() { CDialog::OnInitDialog(); CImageList* pImageList = new CImageList(); pImageList->Create(32, 32, ILC_COLOR16, 0, 1); m_listEmoticon.SetImageList(pImageList, LVSIL_NORMAL); LoadEmoticons(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
CEmoticonDlg::CEmoticonDlg(CWidget* parent) : m_IsModified(false) // : CDialog( parent, _("Emoticons"), true ) { m_Widget = gtk_dialog_new_with_buttons(_("Emoticons"), GTK_WINDOW(parent->m_Widget), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), _("Send"), GTK_RESPONSE_OK, GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, NULL); gtk_dialog_set_default_response(GTK_DIALOG(m_Widget), GTK_RESPONSE_OK ); gtk_window_set_type_hint (GTK_WINDOW (m_Widget), GDK_WINDOW_TYPE_HINT_DIALOG); PostCreate(); GtkWidget *vbox; GtkWidget *hbox; GtkWidget *emoticon_list_scrl; GtkWidget *emoticon_list; GtkWidget *vbtn_box; GtkWidget *add_btn; GtkWidget *edit_btn; GtkWidget *remove_btn; GtkWidget *up_btn; GtkWidget *down_btn; vbox = GTK_DIALOG (m_Widget)->vbox; gtk_widget_show (vbox); hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); gtk_box_pack_end (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); emoticon_list_scrl = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (emoticon_list_scrl); gtk_box_pack_start (GTK_BOX (hbox), emoticon_list_scrl, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (emoticon_list_scrl), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (emoticon_list_scrl), GTK_SHADOW_IN); vbtn_box = gtk_vbutton_box_new (); gtk_widget_show (vbtn_box); gtk_box_pack_start (GTK_BOX (hbox), vbtn_box, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (vbtn_box), GTK_BUTTONBOX_START); add_btn = gtk_button_new_from_stock ("gtk-add"); gtk_widget_show (add_btn); gtk_container_add (GTK_CONTAINER (vbtn_box), add_btn); GTK_WIDGET_SET_FLAGS (add_btn, GTK_CAN_DEFAULT); edit_btn = gtk_button_new_from_stock ("gtk-edit"); gtk_widget_show (edit_btn); gtk_container_add (GTK_CONTAINER (vbtn_box), edit_btn); GTK_WIDGET_SET_FLAGS (edit_btn, GTK_CAN_DEFAULT); remove_btn = gtk_button_new_from_stock ("gtk-remove"); gtk_widget_show (remove_btn); gtk_container_add (GTK_CONTAINER (vbtn_box), remove_btn); GTK_WIDGET_SET_FLAGS (remove_btn, GTK_CAN_DEFAULT); up_btn = gtk_button_new_from_stock ("gtk-go-up"); gtk_widget_show (up_btn); gtk_container_add (GTK_CONTAINER (vbtn_box), up_btn); GTK_WIDGET_SET_FLAGS (up_btn, GTK_CAN_DEFAULT); down_btn = gtk_button_new_from_stock ("gtk-go-down"); gtk_widget_show (down_btn); gtk_container_add (GTK_CONTAINER (vbtn_box), down_btn); GTK_WIDGET_SET_FLAGS (down_btn, GTK_CAN_DEFAULT); g_signal_connect ((gpointer) add_btn, "clicked", G_CALLBACK (CEmoticonDlg::OnAdd), this); g_signal_connect ((gpointer) edit_btn, "clicked", G_CALLBACK (CEmoticonDlg::OnEdit), this); g_signal_connect ((gpointer) remove_btn, "clicked", G_CALLBACK (CEmoticonDlg::OnRemove), this); g_signal_connect ((gpointer) up_btn, "clicked", G_CALLBACK (CEmoticonDlg::OnUp), this); g_signal_connect ((gpointer) down_btn, "clicked", G_CALLBACK (CEmoticonDlg::OnDown), this); gtk_window_set_default_size((GtkWindow*)m_Widget, 512, 400); m_List = new CListBox; emoticon_list = m_List->m_Widget; gtk_widget_show (emoticon_list); gtk_container_add (GTK_CONTAINER (emoticon_list_scrl), emoticon_list); g_signal_connect(G_OBJECT(m_Widget), "response", G_CALLBACK(CDialog::OnResponse), this); g_signal_connect(G_OBJECT(m_List->m_Widget), "row-activated", G_CALLBACK(CEmoticonDlg::OnListRowActivated), this ); LoadEmoticons(); }