win_unicode_input::win_unicode_input(QWidget *parent, Qt::WFlags tipo, QPoint winpos) : QDialog(parent, tipo) { // Se questo QDialog viene creato con tipo == Qt::Dialog allora sono costretto ad avere il ? in alto a destra // Ciò forse è un bene perchè mi costringerà ad avere un minimo di help // Veder Qt::WindowContextHelpButtonHint per avere maggiori informazioni setWindowTitle(tr("Insert Character")); //setSizeGripEnabled(true); setModal(true); move(winpos); cw = new CharacterWidget(this); QGridLayout *layout = new QGridLayout(this); layout->addWidget(setup_group(),0,0); layout->addWidget(setup_list(),0,1); //layout->addLayout(setup_buttons(),1,0, TRUE, FALSE); layout->setSpacing(6); layout->setMargin(8); }
int main(int argc, char **argv){ GtkWidget *window; int ret,indexFlag; char cmd[50]; struct stat sb; ret = stat("INDEX/STATUS.txt",&sb); g_thread_init (NULL); gdk_threads_init (); gdk_threads_enter(); if(ret == -1){ indexFlag = FAIL; } gtk_init(&argc,&argv); // Window initiation window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); // gtk_window_set_default_size(GTK_WINDOW(window), 1200, 700); gtk_window_set_title(GTK_WINDOW(window), "Search"); gtk_container_set_border_width(GTK_CONTAINER(window), 5); gtk_window_maximize(GTK_WINDOW(window)); GTK_WINDOW(window)->allow_shrink = FALSE; // SEARCH PART //Widgets - Entry and a button GtkWidget *fixed; fixed = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window),fixed); queryEntry = gtk_entry_new(); gtk_widget_set_size_request(queryEntry, 850, 30); searchButton = gtk_button_new_with_label("Search"); gtk_widget_set_size_request(searchButton, 80, 30); gtk_fixed_put(GTK_FIXED(fixed),queryEntry,X_SEARCH,Y_UPPER); gtk_fixed_put(GTK_FIXED(fixed),searchButton,X_SEARCH + 870,Y_UPPER); g_signal_connect(searchButton,"clicked",G_CALLBACK(list_add_cb),NULL); // result GtkWidget *view_list; view_list = setup_list(); gtk_widget_set_size_request(view_list,1000,600); gtk_fixed_put(GTK_FIXED(fixed),view_list,X_SEARCH,Y_LOWER); // INDEX PART // The index Button indexButton = gtk_button_new_with_label("Index"); gtk_widget_set_size_request(indexButton,80,30); gtk_fixed_put(GTK_FIXED(fixed), indexButton, X_INDEX,Y_UPPER); g_signal_connect(indexButton,"clicked",G_CALLBACK(indexFunc),NULL); //The text view for updates and status GtkWidget *label; char buf[MAXBIG]; label = gtk_label_new("Index Status : "); gtk_fixed_put(GTK_FIXED(fixed),label,X_INDEX, Y_LOWER); textView = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(textView),FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textView),GTK_WRAP_WORD_CHAR); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(textView),FALSE); gtk_widget_set_size_request(textView,250,550); textViewBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textView)); if(indexFlag == FAIL){ sprintf(buf,"Index not created.\nFirst create Index.\nThen Search.\n"); }else{ readFile("INDEX/STATUS.txt",buf); } gtk_text_buffer_set_text(textViewBuffer,buf,-1); gtk_fixed_put(GTK_FIXED(fixed), textView, X_INDEX, Y_LOWER + 30); // Final commands g_signal_connect_swapped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), G_OBJECT(window)); gtk_widget_show_all(window); gtk_main(); gdk_threads_enter(); return 0; }