//---------------------主函数-------------------- int main(int argc, char *argv[]) { int i; int timer; gpointer data, date; gtk_set_locale ();//初始化运行环境 gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建主窗口 gtk_window_set_title(GTK_WINDOW(window),"查看进程使用内存地址的利器");//设置窗口标题 gtk_widget_set_usize(window, 600, 500);//设置窗口大小 gtk_window_set_resizable (GTK_WINDOW (window), TRUE);// 窗口大小可改变(TRUE) gtk_container_set_border_width(GTK_CONTAINER(window),5);//设置窗口边框宽度 gtk_widget_show(window); table = gtk_table_new(12,11,TRUE);//创建表格12行*11列 gtk_widget_show(table); gtk_container_add(GTK_CONTAINER(window),table);//将table装进窗口 notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook),GTK_POS_TOP);//设置notebook的格式 gtk_table_attach_defaults (GTK_TABLE (table), notebook, 0, 11, 1, 11);//将notebook加入表格中 gtk_widget_show(notebook); for(i = 0; i < 5; i++) { label0[i] = gtk_label_new(title[i]); frame[i] = gtk_frame_new(NULL); gtk_container_set_border_width(GTK_CONTAINER(frame[i]), 10); gtk_frame_set_shadow_type(GTK_FRAME(frame[i]), GTK_SHADOW_ETCHED_OUT); gtk_widget_set_size_request(frame[i], 450, 450); gtk_widget_show(frame[i]); gtk_widget_show(label0[i]); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame[i], label0[i]); table1[i] = gtk_table_new(12, 11, TRUE); gtk_widget_show(table1[i]); gtk_container_add(GTK_CONTAINER(frame[i]), table1[i]); } label = gtk_label_new("Select Memory Address By PID:"); gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 5, 0, 1); gtk_widget_show(label); entry = gtk_entry_new(); gtk_table_attach_defaults(GTK_TABLE(table), entry, 6, 8, 0, 1); gtk_widget_show(entry); button = gtk_button_new_with_label(" SELECT "); gtk_widget_set_size_request(button, 10, 10); gtk_table_attach_defaults(GTK_TABLE(table), button, 9, 11, 0, 1); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_clicked), NULL); gtk_widget_show(button); time_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)sys_time, data); gtk_table_attach_defaults(GTK_TABLE(table), time_label, 7, 11, 1, 2); gtk_widget_show(time_label); uptime_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)uptime, data); // gtk_table_attach_defaults(GTK_TABLE(table), uptime_label, 7, 11, 0, 2); gtk_widget_show(uptime_label); MenuBar = gtk_menu_bar_new(); gtk_table_attach_defaults(GTK_TABLE(table), MenuBar, 0, 11, 0, 1); MenuItemFile = CreateMenuItem(MenuBar, "文件"); CreateMenuFile(MenuItemFile); MenuItemShutDown = CreateMenuItem(MenuBar, "关机选项"); CreateMenuShutDown(MenuItemShutDown); MenuItemHelp = CreateMenuItem(MenuBar, "帮助"); CreateMenuHelp(MenuItemHelp); gtk_widget_show(MenuBar); process_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)process_num, data); gtk_table_attach_defaults(GTK_TABLE(table), process_label, 0, 2, 11, 12); gtk_widget_show(process_label); cpu_rate_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)cpu_rate_ava, data); gtk_table_attach_defaults(GTK_TABLE(table), cpu_rate_label, 2, 5, 11, 12); gtk_widget_show(cpu_rate_label); mem_rate_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)mem_rate_ava, data); gtk_table_attach_defaults(GTK_TABLE(table), mem_rate_label, 5, 8, 11, 12); gtk_widget_show(mem_rate_label); swap_rate_label = gtk_label_new(""); timer = gtk_timeout_add(1000, (GtkFunction)swap_rate_ava, data); gtk_table_attach_defaults(GTK_TABLE(table), swap_rate_label, 8, 10, 11, 12); gtk_widget_show(swap_rate_label); cpu_bar = gtk_progress_bar_new(); mem_bar = gtk_progress_bar_new(); swap_bar = gtk_progress_bar_new(); gtk_widget_show(cpu_bar); gtk_widget_show(mem_bar); gtk_widget_show(swap_bar); notebook_cpu_init(); notebook_mem_init(); notebook_pro_init(); // notebook_vmem_init(); v_label = gtk_label_new(""); r_label = gtk_label_new(""); gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event), NULL); gtk_main(); return 0; }
PRIVATE void init_2oct_pattern(Control *control) { GtkWidget *hb; int i; GtkWidget **widgets = safe_malloc(sizeof(GtkWidget *) * (SEQUENCE_LENGTH * 2 + 1)); Data *data = control->g->data; GtkWidget *label, *menu; GtkWidget *rightvb; hb = gtk_hbox_new(FALSE, 5); for (i = 0; i < SEQUENCE_LENGTH; i++) { GtkWidget *vb = gtk_vbox_new(FALSE, 5); GtkWidget *b = gtk_vscale_new(NULL); GtkWidget *t = gtk_toggle_button_new(); GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(b)); gtk_scale_set_draw_value(GTK_SCALE(b), FALSE); gtk_scale_set_digits(GTK_SCALE(b), 2); adj->step_increment = 1; adj->page_increment = 1; adj->lower = 127 - 48; adj->upper = 127 - 24; adj->value = 127 - data->pattern[data->edit][i]; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(t), data->note[data->edit][i]); gtk_object_set_data(GTK_OBJECT(adj), "Control", control); gtk_signal_connect(GTK_OBJECT(adj), "value_changed", GTK_SIGNAL_FUNC(value_changed_handler), (gpointer) i); gtk_signal_connect(GTK_OBJECT(b), "focus_in_event", GTK_SIGNAL_FUNC(focus_in_handler), control); gtk_widget_set_usize(b, 12, 100); gtk_box_pack_start(GTK_BOX(vb), b, FALSE, FALSE, 0); gtk_widget_show(b); widgets[i] = b; gtk_object_set_data(GTK_OBJECT(t), "Control", control); gtk_signal_connect(GTK_OBJECT(t), "toggled", GTK_SIGNAL_FUNC(toggle_changed_handler), (gpointer) i); gtk_widget_set_usize(t, 12, 16); gtk_box_pack_start(GTK_BOX(vb), t, FALSE, FALSE, 0); gtk_widget_show(t); widgets[i + SEQUENCE_LENGTH] = t; gtk_box_pack_start(GTK_BOX(hb), vb, FALSE, FALSE, 0); gtk_widget_show(vb); } rightvb = gtk_vbox_new( FALSE, 5 ); label = gtk_label_new("--"); gtk_box_pack_start(GTK_BOX(rightvb), label, FALSE, FALSE, 0); menu = gtk_button_new_with_label( "M" ); gtk_box_pack_start(GTK_BOX(rightvb), menu, TRUE, FALSE, 0); gtk_signal_connect( GTK_OBJECT(menu), "clicked", GTK_SIGNAL_FUNC( popup_handler ), control ); gtk_box_pack_start(GTK_BOX(hb), rightvb, FALSE, FALSE, 0); gtk_widget_show(label); gtk_widget_show(menu); gtk_widget_show(rightvb); widgets[SEQUENCE_LENGTH * 2] = label; control->widget = hb; control->data = widgets; }
int l_upldok(const char *data_dok, //Дата документа const char *nomd, //Номер документа const char *kod_pod, /*код подразделения*/ GtkWidget *wpredok) { class upldok_data data; iceb_u_str string; char bros[500]; data.data_dok.new_plus(data_dok); data.nomd.plus(nomd); data.kod_pod.plus(kod_pod); /*Читаем реквизиты документа*/ l_upldok_read_rhd(&data,wpredok); /*Читаем после чтения реквизитов документов*/ data.kolih_ost=ostvaw(data.data_dok.ravno(),data.kod_vod.ravno(),data.kod_avt.ravno(),data.nz.ravno_atoi(),&data.kod_top_ost,&data.kolih_top_ost,wpredok); data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); //gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); //gdk_color_parse("black",&color); //gtk_widget_modify_bg(data.window,GTK_STATE_NORMAL,&color); sprintf(bros,"%s %s",name_system,gettext("Работа с документом")); gtk_window_set_title (GTK_WINDOW (data.window),bros); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(upldok_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); GtkWidget *hbox_hap = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE,1); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE,1); gtk_widget_show(hbox); data.label_rek_dok=gtk_label_new (data.hapka.ravno_toutf()); //gtk_box_pack_start (GTK_BOX (vbox2),data.label_rek_dok,FALSE, FALSE,1); gtk_box_pack_start (GTK_BOX (vbox2),hbox_hap,FALSE, FALSE,1); gtk_box_pack_start (GTK_BOX (hbox_hap),data.label_rek_dok,FALSE, FALSE,1); class iceb_u_str spis_top_ost; spis_top_ost.plus(gettext("Остаток топлива")); spis_top_ost.plus(":\n"); for(int ii=0; ii < data.kod_top_ost.kolih(); ii++) { sprintf(bros,"%6s:%10.3f\n",data.kod_top_ost.ravno(ii),data.kolih_top_ost.ravno(ii)); spis_top_ost.plus(bros); } GtkWidget *label=NULL; label=gtk_label_new(spis_top_ost.ravno_toutf()); gtk_box_pack_end (GTK_BOX (hbox_hap),label,FALSE, FALSE,1); gtk_widget_show_all(hbox_hap); data.label_red=gtk_label_new (""); gtk_box_pack_start (GTK_BOX (vbox2),data.label_red,FALSE, FALSE,1); GdkColor color; gdk_color_parse("red",&color); gtk_widget_modify_fg(data.label_red,GTK_STATE_NORMAL,&color); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),-1,200); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE,1); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE,1); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(bros,"%sF1 %s",RFK,gettext("Шапка")); data.knopka[SFK1]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK1]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK1],TRUE,TRUE,1); tooltips[SFK1]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK1],data.knopka[SFK1],gettext("Просмотр шапки документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK1]),(gpointer)SFK1); gtk_widget_show(data.knopka[SFK1]); sprintf(bros,"F2 %s",gettext("Ввести")); data.knopka[FK2]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2],TRUE,TRUE,1); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Ввод новой записи на получение топлива"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(bros,"%sF2 %s",RFK,gettext("Корректировать")); data.knopka[SFK2]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK2]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK2],TRUE,TRUE,1); tooltips[SFK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK2],data.knopka[SFK2],gettext("Корректировка выбранной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK2]),(gpointer)SFK2); gtk_widget_show(data.knopka[SFK2]); sprintf(bros,"F3 %s",gettext("Удалить")); data.knopka[FK3]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK3]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK3],TRUE,TRUE,1); tooltips[FK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK3],data.knopka[FK3],gettext("Удалить выбранную запись"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK3]),(gpointer)FK3); gtk_widget_show(data.knopka[FK3]); sprintf(bros,"%sF3 %s",RFK,gettext("Удалить")); data.knopka[SFK3]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK3]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK3],TRUE,TRUE,1); tooltips[SFK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK3],data.knopka[SFK3],gettext("Удалить документ"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK3]),(gpointer)SFK3); gtk_widget_show(data.knopka[SFK3]); sprintf(bros,"F4 %s",gettext("Объекти")); data.knopka[FK4]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK4]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK4],TRUE,TRUE,1); tooltips[FK4]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK4],data.knopka[FK4],gettext("Переход в режим списания топлива по объектам и счетам"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK4]),(gpointer)FK4); gtk_widget_show(data.knopka[FK4]); sprintf(bros,"F6 %s",gettext("Списание")); data.knopka[FK6]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK6],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK6]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); tooltips[FK6]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK6],data.knopka[FK6],gettext("Автоматическое списание топлива"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK6]),(gpointer)FK6); gtk_widget_show(data.knopka[FK6]); sprintf(bros,"F7 %s",gettext("Перенос")); data.knopka[FK7]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK7],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK7]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); tooltips[FK7]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK7],data.knopka[FK7],gettext("Перенос остатка топлива с предыдушего водителя"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK7]),(gpointer)FK7); gtk_widget_show(data.knopka[FK7]); sprintf(bros,"F8 %s",gettext("Списание")); data.knopka[FK8]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK8],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK8]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); tooltips[FK8]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK8],data.knopka[FK8],gettext("Ввод записи на списание топлива"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK8]),(gpointer)FK8); gtk_widget_show(data.knopka[FK8]); sprintf(bros,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE,1); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(upldok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); upldok_create_list(&data); gtk_widget_show(data.window); gtk_window_maximize(GTK_WINDOW(data.window)); gtk_main(); //printf("l_upldok end\n"); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); return(data.voz); }
void finestra(struttura *str) { GtkWidget *frame, *winbox, *box,*table;//nuovo x lista GtkWidget **buttonArray; int i, x, y; char s_i[3]; /*Definiamo vettore che contiene gli indici delle posizioni possibili dell'interfaccia*/ char s[NUM_OF_BUTTONS][10]={"1","2 abc","3 def","4 ghi","5 jkl","6 mno","7 pqrs","8 tuv","9 wxyz","⇧ shift","0 +","PT","del","space","↵","sf","tab","ins","→","↓","."}; /* GDK_GRAVITY_SOUTH_WEST is the reference point corresponding at the lower left corner -> position 1 GDK_GRAVITY_SOUTH is the reference point corresponding at the middle of the lower edge -> position 2 GDK_GRAVITY_SOUTH_EAST is the reference point corresponding at the lower right corner -> position 3 */ str->window = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_default_size (GTK_WINDOW(str->window), WINDOW_WIDTH, WINDOW_HEIGHT); winbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (str->window), winbox); gtk_widget_show (winbox); /* Crea una Frame */ frame = gtk_frame_new(NULL); gtk_container_add(GTK_CONTAINER(winbox), frame); /* Setta l'etichetta della frame */ gtk_frame_set_label( GTK_FRAME(frame), "Keyboard" ); gtk_widget_show (frame); box = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (frame), box); gtk_widget_show (box); buttonArray = (GtkWidget**)g_malloc((NUM_OF_BUTTONS)*sizeof(GtkButton**)); table = gtk_table_new(NUM_OF_ROWS, NUM_OF_COLUMNS, TRUE); gtk_table_set_row_spacings(GTK_TABLE(table), 1); gtk_table_set_col_spacings(GTK_TABLE(table), 1); x=y=0; for(i=1; i<=NUM_OF_BUTTONS;i++) { buttonArray[i] = gtk_button_new_with_label(s[i-1]); gtk_widget_set_size_request(buttonArray[i],60,40); gtk_table_attach_defaults(GTK_TABLE(table), buttonArray[i], x, x+1, y, y+1); supportoButtonTable(s_i,i); gtk_widget_set_name(buttonArray[i],s_i); g_signal_connect(G_OBJECT(buttonArray[i]), "clicked", G_CALLBACK(button_clicked),str); if(++x==NUM_OF_COLUMNS) { x=0; y++; } } gtk_box_pack_start(GTK_BOX(box), table, FALSE, FALSE, 0); /* Crea una Label per i tasti Shift e Ctrl */ str->mylabel = gtk_label_new ("Shift off"); gtk_widget_set_usize(str->mylabel, 0, 1); gtk_container_add(GTK_CONTAINER(box), str->mylabel); gtk_widget_show (str->mylabel); /* Crea una Lista per il T9 */ str->tp.gtklist=gtk_list_new(); gtk_list_set_selection_mode((GtkList *)str->tp.gtklist, GTK_SELECTION_SINGLE); str->tp.scrolled_window=gtk_scrolled_window_new(NULL,NULL); gtk_widget_set_usize(str->tp.scrolled_window, 0,S_W_MAIN);//75// gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (str->tp.scrolled_window),GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(str->tp.scrolled_window),str->tp.gtklist); gtk_container_add(GTK_CONTAINER(box),str->tp.scrolled_window); gtk_widget_show(str->tp.scrolled_window); gtk_widget_show(str->tp.gtklist); gtk_signal_connect(GTK_OBJECT(str->tp.gtklist),"selection_changed",GTK_SIGNAL_FUNC(sigh_print_selection),str);//nuovo x lista /* Crea una Label per il T9 */ str->mylabel2 = gtk_label_new ("PT off"); gtk_widget_set_usize(str->mylabel2,0, 1); gtk_container_add(GTK_CONTAINER(box),str->mylabel2); gtk_widget_show (str->mylabel2); /* Crea uno status icon per la minimizzazione */ str->tray_icon = gtk_status_icon_new(); g_signal_connect(G_OBJECT(str->tray_icon), "activate",G_CALLBACK(tray_icon_on_click), str); gtk_status_icon_set_from_icon_name(str->tray_icon,GTK_STOCK_MEDIA_STOP); gtk_status_icon_set_from_file(str->tray_icon,PATH_IMG); gtk_status_icon_set_tooltip(str->tray_icon,"Keyboard Tray Icon"); gtk_status_icon_set_visible(str->tray_icon, FALSE); gtk_widget_show_all(str->window); /*salviamo le dim massime dello schermo corrente*/ getMaxScreen(str); ins(str); // gtk_main (); }
static void generic_dialog_add_images (GenericDialog * gd, const gchar * path1, const gchar * path2) { ImageWindow *iw; GtkWidget *hbox = NULL; GtkWidget *vbox; GtkWidget *sep; GtkWidget *label; if (!path1) return; sep = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (gd->vbox), sep, FALSE, FALSE, 5); gtk_widget_show (sep); if (path2) { hbox = gtk_hbox_new (TRUE, 5); gtk_box_pack_start (GTK_BOX (gd->vbox), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); } /* * image 1 */ vbox = gtk_vbox_new (FALSE, 0); if (hbox) { gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); } else { gtk_box_pack_start (GTK_BOX (gd->vbox), vbox, TRUE, TRUE, 0); } gtk_widget_show (vbox); iw = image_new (TRUE); gtk_widget_set_usize (iw->widget, DIALOG_DEF_IMAGE_DIM_X, DIALOG_DEF_IMAGE_DIM_Y); gtk_box_pack_start (GTK_BOX (vbox), iw->widget, TRUE, TRUE, 0); image_set_path (iw, path1); gtk_widget_show (iw->widget); label = gtk_label_new (filename_from_path (path1)); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); /* * image 2 */ if (hbox && path2) { vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); gtk_widget_show (vbox); iw = image_new (TRUE); gtk_widget_set_usize (iw->widget, DIALOG_DEF_IMAGE_DIM_X, DIALOG_DEF_IMAGE_DIM_Y); gtk_box_pack_start (GTK_BOX (vbox), iw->widget, TRUE, TRUE, 0); image_set_path (iw, path2); gtk_widget_show (iw->widget); label = gtk_label_new (filename_from_path (path2)); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); } }
void statistics_dialog (void) { GtkWidget *window; GtkWidget *main_vbox; GtkWidget *page; GtkWidget *hbox; GtkWidget *label; GtkWidget *button; int page_num = 0; server_stats_create (); collect_statistics (); window = dialog_create_modal_transient_window (_("Statistics"), TRUE, TRUE, G_CALLBACK(statistics_save_geometry)); statistics_restore_geometry(window); main_vbox = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 8); gtk_container_add (GTK_CONTAINER (window), main_vbox); label = gtk_label_new (_("Statistics")); gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 8); gtk_widget_show (label); stat_notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (stat_notebook), GTK_POS_TOP); gtk_notebook_set_tab_hborder (GTK_NOTEBOOK (stat_notebook), 4); gtk_box_pack_start (GTK_BOX (main_vbox), stat_notebook, TRUE, TRUE, 0); page = server_stats_page (); label = gtk_label_new (_(srv_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); page = archs_stats_page (); label = gtk_label_new (_(arch_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); #ifdef USE_GEOIP page = country_stats_page (); label = gtk_label_new (_(country_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); #endif page_num = config_get_int ("/" CONFIG_FILE "/Statistics/page"); gtk_notebook_set_page (GTK_NOTEBOOK (stat_notebook), page_num); gtk_widget_show (stat_notebook); /* Close Button */ hbox = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label (_("Close")); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_usize (button, 80, -1); g_signal_connect (button, "clicked", G_CALLBACK (grab_defaults), NULL); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (hbox); gtk_widget_show (main_vbox); gtk_widget_show (window); gtk_main (); unregister_window (window); server_stats_destroy (); }
int rppvow_r(class rppvow_rr *datark,GtkWidget *wpredok) { char strsql[512]; iceb_u_str repl; class rppvow_r_data data; data.rk=datark; data.window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); sprintf(strsql,"%s %s",name_system,gettext("Распечатать реестр проводок по видам операций")); gtk_window_set_title(GTK_WINDOW(data.window),strsql); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(rppvow_r_key_press),&data); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } GtkWidget *vbox=gtk_vbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(data.window), vbox); data.label=gtk_label_new(gettext("Ждите !!!")); gtk_box_pack_start(GTK_BOX(vbox),data.label,FALSE,FALSE,0); repl.plus(gettext("Распечатать реестр проводок по видам операций")); sprintf(strsql,"%s:%s %s\n",gettext("База данных"),imabaz,organ); repl.ps_plus(strsql); GtkWidget *label=gtk_label_new(repl.ravno_toutf()); gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0); data.view=gtk_text_view_new(); gtk_widget_set_usize(GTK_WIDGET(data.view),450,300); gtk_text_view_set_editable(GTK_TEXT_VIEW(data.view),FALSE); //Запрет на редактирование текста //PangoFontDescription *font_pango=pango_font_description_from_string("Nimbus Mono L, Bold 12"); PangoFontDescription *font_pango=pango_font_description_from_string(shrift_ravnohir.ravno()); gtk_widget_modify_font(GTK_WIDGET(data.view),font_pango); pango_font_description_free(font_pango); data.buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(data.view)); GtkWidget *sw=gtk_scrolled_window_new(NULL,NULL); //gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(sw),data.view); data.bar=gtk_progress_bar_new(); gtk_progress_bar_set_bar_style(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_CONTINUOUS); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_LEFT_TO_RIGHT); gtk_box_pack_start (GTK_BOX (vbox), data.bar, FALSE, FALSE, 2); sprintf(strsql,"F10 %s",gettext("Выход")); data.knopka=gtk_button_new_with_label(strsql); GtkTooltips *tooltops=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltops,data.knopka,gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka),"clicked",GTK_SIGNAL_FUNC(rppvow_r_v_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka),(gpointer)0); gtk_box_pack_start (GTK_BOX (vbox), data.knopka, FALSE, FALSE, 2); gtk_widget_set_sensitive(GTK_WIDGET(data.knopka),FALSE);//Недоступна gtk_widget_show_all(data.window); //gtk_window_set_decorated(GTK_WINDOW(data.window),FALSE); //Убирает рамку вокруг окна //gtk_widget_set_sensitive(GTK_WIDGET(data.knopka),FALSE);//Недоступна gtk_idle_add((GtkFunction)rppvow_r1,&data); gtk_main(); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); return(data.voz); }
GtkWidget * create_SkinBrowser( void ) { GtkWidget * vbox5; GtkWidget * scrolledwindow1; GtkWidget * hbuttonbox4; GtkWidget * Cancel; GtkWidget * Ok; GtkAccelGroup * accel_group; accel_group = gtk_accel_group_new (); SkinBrowser=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_widget_set_name( SkinBrowser,MSGTR_SkinBrowser ); gtk_object_set_data( GTK_OBJECT( SkinBrowser ),MSGTR_SkinBrowser,SkinBrowser ); gtk_widget_set_usize( SkinBrowser,256,320 ); gtk_container_set_border_width( GTK_CONTAINER( SkinBrowser ),1 ); GTK_WIDGET_SET_FLAGS( SkinBrowser,GTK_CAN_DEFAULT ); gtk_widget_set_events( SkinBrowser,GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK ); gtk_window_set_title( GTK_WINDOW( SkinBrowser ),MSGTR_SkinBrowser ); gtk_window_set_position( GTK_WINDOW( SkinBrowser ),GTK_WIN_POS_CENTER ); gtk_window_set_policy( GTK_WINDOW( SkinBrowser ),FALSE,FALSE,TRUE ); gtk_window_set_wmclass( GTK_WINDOW( SkinBrowser ),"SkinBrowser","MPlayer" ); gtk_widget_realize( SkinBrowser ); gtkAddIcon( SkinBrowser ); vbox5=AddVBox( AddDialogFrame( SkinBrowser ),0 ); AddLabel( MSGTR_SKIN_LABEL,vbox5 ); AddHSeparator( vbox5 ); scrolledwindow1=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_set_name( scrolledwindow1,"scrolledwindow1" ); gtk_widget_ref( scrolledwindow1 ); gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"scrolledwindow1",scrolledwindow1,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( scrolledwindow1 ); gtk_box_pack_start( GTK_BOX( vbox5 ),scrolledwindow1,TRUE,TRUE,0 ); gtk_container_set_border_width( GTK_CONTAINER( scrolledwindow1 ),2 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC ); SkinList=gtk_clist_new( 1 ); gtk_widget_set_name( SkinList,"SkinList" ); gtk_widget_ref( SkinList ); gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"SkinList",SkinList,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( SkinList ); gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),SkinList ); gtk_clist_set_column_width( GTK_CLIST( SkinList ),0,80 ); gtk_clist_set_selection_mode( GTK_CLIST( SkinList ),GTK_SELECTION_SINGLE ); gtk_clist_column_titles_hide( GTK_CLIST( SkinList ) ); gtk_clist_set_shadow_type( GTK_CLIST( SkinList ),GTK_SHADOW_ETCHED_OUT ); AddHSeparator( vbox5 ); hbuttonbox4=AddHButtonBox( vbox5 ); gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox4 ),GTK_BUTTONBOX_SPREAD ); gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox4 ),10 ); Ok=AddButton( MSGTR_Ok,hbuttonbox4 ); Cancel=AddButton( MSGTR_Cancel,hbuttonbox4 ); gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); gtk_widget_add_accelerator( Cancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); gtk_signal_connect( GTK_OBJECT( SkinBrowser ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&SkinBrowser ); gtk_signal_connect( GTK_OBJECT( SkinList ),"select_row",GTK_SIGNAL_FUNC( on_SkinList_select_row ),NULL ); gtk_signal_connect( GTK_OBJECT( Ok ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void *)1 ); gtk_signal_connect( GTK_OBJECT( Cancel ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void *)0 ); if ( ( sbMPlayerDirInHome=calloc( 1,strlen( skinDirInHome ) + 4 ) ) != NULL ) { strcpy( sbMPlayerDirInHome,skinDirInHome ); strcat( sbMPlayerDirInHome,"/*" ); } if ( ( sbMPlayerPrefixDir=calloc( 1,strlen( skinMPlayerDir ) + 4 ) ) != NULL ) { strcpy( sbMPlayerPrefixDir,skinMPlayerDir ); strcat( sbMPlayerPrefixDir,"/*" ); } gtk_window_add_accel_group( GTK_WINDOW( SkinBrowser ),accel_group ); gtk_widget_grab_focus( SkinList ); return SkinBrowser; }
int main (int argc, char *argv[] ) { GtkWidget *window, *pixmap, *fixed; GdkPixmap *gdk_pixmap; GdkBitmap *mask; GtkStyle *style; GdkGC *gc; CursorOffset* icon_pos; //初始化 gtk_set_locale(); gtk_init (&argc, &argv); //根窗口 root_win = gdk_window_foreign_new (GDK_ROOT_WINDOW ()); //建立无边界窗口 window = gtk_window_new( GTK_WINDOW_POPUP ); gtk_widget_set_events (window, gtk_widget_get_events (window) | GDK_BUTTON_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK); gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (close_application), NULL); gtk_signal_connect (GTK_OBJECT (window), "button_press_event", GTK_SIGNAL_FUNC (shape_pressed),NULL); gtk_signal_connect (GTK_OBJECT (window), "button_release_event", GTK_SIGNAL_FUNC (shape_released),NULL); gtk_signal_connect (GTK_OBJECT (window), "motion_notify_event", GTK_SIGNAL_FUNC (shape_motion),NULL); gtk_widget_show (window); //建立图像 style = gtk_widget_get_default_style(); gc = style->black_gc; gdk_pixmap = gdk_pixmap_create_from_xpm_d( window->window, &mask, &style->bg[GTK_STATE_NORMAL], xpenguin_color_xpm ); pixmap = gtk_pixmap_new( gdk_pixmap, mask ); gtk_widget_show( pixmap ); //建立一个定点定位容器 fixed = gtk_fixed_new(); //容器的尺寸和图像一样 gtk_widget_set_usize( fixed, 202, 240 ); gtk_fixed_put( GTK_FIXED(fixed), pixmap, 0, 0 ); gtk_container_add( GTK_CONTAINER(window), fixed ); gtk_widget_show( fixed ); //对窗口设置掩码 gtk_widget_shape_combine_mask( window, mask, 0, 0 ); //设置数据 icon_pos = g_new (CursorOffset, 1); gtk_object_set_user_data(GTK_OBJECT(window), icon_pos); //设置窗口的位置 gtk_widget_set_uposition( window, 200, 400 ); gtk_widget_show( window ); gtk_main (); return(0); }
int rest_oth_r(class rest_oth_data *datap) { printf("rest_oth_r-Начало работы\n"); iceb_u_str soob; char strsql[300]; rest_oth_r_data data; data.rk=datap; data.window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); sprintf(strsql,"%s %s",name_system,gettext("Отчёт по оплаченным счетам")); gtk_window_set_title(GTK_WINDOW(data.window),strsql); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(rest_oth_r_key_press),&data); GtkWidget *vbox=gtk_vbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(data.window), vbox); data.label=gtk_label_new(gettext("Ждите !!!")); gtk_box_pack_start(GTK_BOX(vbox),data.label,FALSE,FALSE,0); soob.new_plus(strsql); sprintf(strsql,"%s %s %s => %s %s",gettext("Расчет за период"), data.rk->datan.ravno(), data.rk->vremn.ravno_time(), data.rk->datak.ravno(), data.rk->vremk.ravno_time_end()); soob.new_plus(strsql); GtkWidget *label=gtk_label_new(soob.ravno_toutf()); gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0); data.view=gtk_text_view_new(); gtk_widget_set_usize(GTK_WIDGET(data.view),400,300); gtk_text_view_set_editable(GTK_TEXT_VIEW(data.view),FALSE); //Запрет на редактирование текста PangoFontDescription *font_pango=pango_font_description_from_string("Nimbus Mono L, Bold 10"); gtk_widget_modify_font(GTK_WIDGET(data.view),font_pango); pango_font_description_free(font_pango); data.buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(data.view)); GtkWidget *sw=gtk_scrolled_window_new(NULL,NULL); //gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(sw),data.view); data.bar=gtk_progress_bar_new(); gtk_progress_bar_set_bar_style(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_CONTINUOUS); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_LEFT_TO_RIGHT); gtk_box_pack_start (GTK_BOX (vbox), data.bar, FALSE, FALSE, 2); sprintf(strsql,"F10 %s",gettext("Выход")); data.knopka=gtk_button_new_with_label(strsql); GtkTooltips *tooltops=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltops,data.knopka,gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka),"clicked",GTK_SIGNAL_FUNC(rest_oth_r_v_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka),(gpointer)0); gtk_box_pack_start (GTK_BOX (vbox), data.knopka, FALSE, FALSE, 2); gtk_widget_set_sensitive(GTK_WIDGET(data.knopka),FALSE);//Недоступна gtk_widget_show_all(data.window); //gtk_window_set_decorated(GTK_WINDOW(data.window),FALSE); //Убирает рамку вокруг окна gtk_idle_add((GtkFunction)rest_oth_r1,&data); gtk_main(); //if(data.voz == 0) // iceb_rabfil(&data.imaf,&data.naim,"",config_dev.metka_klav,NULL); return(data.voz); }
int DoLoadPortalFileDialog () { GtkWidget *dlg, *vbox, *hbox, *button, *entry, *check2d, *check3d; int loop = 1, ret = IDCANCEL; dlg = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (dlg), "Load .prt"); gtk_signal_connect (GTK_OBJECT (dlg), "delete_event", GTK_SIGNAL_FUNC (dialog_delete_callback), NULL); gtk_signal_connect (GTK_OBJECT (dlg), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroy), NULL); g_object_set_data (G_OBJECT (dlg), "loop", &loop); g_object_set_data (G_OBJECT (dlg), "ret", &ret); vbox = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (dlg), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); entry = gtk_entry_new (); gtk_widget_show (entry); gtk_entry_set_editable (GTK_ENTRY (entry), FALSE); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); check3d = gtk_check_button_new_with_label ("Show 3D"); gtk_widget_show (check3d); gtk_box_pack_start (GTK_BOX (hbox), check3d, FALSE, FALSE, 0); check2d = gtk_check_button_new_with_label ("Show 2D"); gtk_widget_show (check2d); gtk_box_pack_start (GTK_BOX (hbox), check2d, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Change"); gtk_widget_show (button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (change_clicked), entry); gtk_widget_set_usize (button, 60, -2); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Cancel"); gtk_widget_show (button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (IDCANCEL)); gtk_widget_set_usize (button, 60, -2); button = gtk_button_new_with_label ("OK"); gtk_widget_show (button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (IDOK)); gtk_widget_set_usize (button, 60, -2); strcpy (portals.fn, GlobalRadiant().getMapName()); char* fn = strrchr (portals.fn, '.'); if (fn != NULL) { strcpy(fn, ".prt"); } StringOutputStream value(256); value << portals.fn; gtk_entry_set_text (GTK_ENTRY (entry), value.c_str()); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check2d), portals.show_2d); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check3d), portals.show_3d); gtk_grab_add (dlg); gtk_widget_show (dlg); while (loop) gtk_main_iteration (); if (ret == IDOK) { portals.Purge(); portals.show_3d = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check3d)) ? true : false; portals.show_2d = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check2d)) ? true : false; } gtk_grab_remove (dlg); gtk_widget_destroy (dlg); return ret; }
void browser_create (void) { GtkWidget *vbox; GdkPixmap *icon_pix; GdkBitmap *icon_mask; GtkAccelGroup *accel; GtkWidget *menu; GtkWidget *toolbar; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *iconw; GtkWidget *hbox; GtkWidget *label; browser = g_new (Browser, 1); browser->current_path = g_string_new (conf.startup_dir); browser->last_path = g_string_new (""); browser->filelist = (FileList *) file_list_init (); browser->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (browser->window), "PornView"); gtk_widget_realize (browser->window); icon_pix = gdk_pixmap_create_from_xpm_d (G_WINDOW (browser->window), &icon_mask, NULL, pornview_xpm); gdk_window_set_icon (G_WINDOW (browser->window), NULL, icon_pix, icon_mask); gtk_signal_connect (GTK_OBJECT (browser->window), "delete_event", GTK_SIGNAL_FUNC (browser_destroy), NULL); gtk_window_set_default_size (GTK_WINDOW (browser->window), conf.window_width, conf.window_height); vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (browser->window), vbox); /* * main menu */ accel = gtk_accel_group_new (); browser->menu = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<browser_menu>", accel); #ifdef ENABLE_NLS gtk_item_factory_set_translate_func (browser->menu, (GtkTranslateFunc) menu_translate, NULL, NULL); #endif gtk_item_factory_create_items (browser->menu, browser_menu_factory_count, browser_menu_factory, NULL); menu = gtk_item_factory_get_widget (browser->menu, "<browser_menu>"); gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, FALSE, 0); gtk_widget_show (menu); #ifndef USE_GTK2 gtk_accel_group_attach (accel, GTK_OBJECT (browser->window)); #endif /* * toolbar */ #ifdef USE_GTK2 toolbar = gtk_toolbar_new (); #else toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); #endif gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); gtk_widget_show (toolbar); iconw = pixbuf_create_pixmap_from_xpm_data (exit_xpm); gtk_toolbar_append_item (GTK_TOOLBAR (toolbar), NULL, _("Exit"), NULL, iconw, (GtkSignalFunc) browser_destroy, NULL); #ifndef USE_GTK2 gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); #endif gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); iconw = pixbuf_create_pixmap_from_xpm_data (options_xpm); gtk_toolbar_append_item (GTK_TOOLBAR (toolbar), NULL, _("Preference"), NULL, iconw, (GtkSignalFunc) browser_prefs, NULL); hpaned = gedo_hpaned_new (); gtk_container_add (GTK_CONTAINER (vbox), hpaned); gtk_widget_show (hpaned); vpaned = gedo_vpaned_new (); gtk_widget_show (vpaned); gedo_paned_add1 (GEDO_PANED (hpaned), vpaned); /* * dirtree */ dirview_create (conf.startup_dir, browser->window); gedo_paned_add1 (GEDO_PANED (vpaned), DIRVIEW_CONTAINER); commentview = comment_view_create (); browser->notebook = commentview->notebook; /* * videoplay */ #ifdef ENABLE_MOVIE videoplay_create (); label = gtk_label_new (_(" Preview ")); gtk_notebook_prepend_page (GTK_NOTEBOOK (browser->notebook), VIDEOPLAY_CONTAINER, label); gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif /* * imageview */ imageview_create (); label = gtk_label_new (_(" Preview ")); gtk_notebook_prepend_page (GTK_NOTEBOOK (browser->notebook), IMAGEVIEW_CONTAINER, label); #ifndef ENABLE_MOVIE gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif gedo_paned_add2 (GEDO_PANED (hpaned), commentview->main_vbox); /* * thumbview */ thumbview_create (browser->window); gedo_paned_add2 (GEDO_PANED (vpaned), THUMBVIEW_CONTAINER); /* * statusbar */ hbox = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox, "StatusBarContainer"); gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); browser->status_dir = gtk_statusbar_new (); gtk_widget_set_name (browser->status_dir, "StatusBar1"); gtk_container_border_width (GTK_CONTAINER (browser->status_dir), 1); gtk_widget_set_usize (browser->status_dir, 80, 15); gtk_box_pack_start (GTK_BOX (hbox), browser->status_dir, FALSE, FALSE, 0); gtk_widget_show (browser->status_dir); browser->status_name = gtk_statusbar_new (); gtk_widget_set_name (browser->status_name, "StatusBar2"); gtk_container_border_width (GTK_CONTAINER (browser->status_name), 1); gtk_widget_set_usize (browser->status_name, 150, -1); gtk_box_pack_start (GTK_BOX (hbox), browser->status_name, TRUE, TRUE, 0); gtk_widget_show (browser->status_name); browser->status_image = gtk_statusbar_new (); gtk_widget_set_name (browser->status_image, "StatusBar3"); gtk_container_border_width (GTK_CONTAINER (browser->status_image), 1); gtk_widget_set_usize (browser->status_image, 150, -1); gtk_box_pack_start (GTK_BOX (hbox), browser->status_image, TRUE, TRUE, 0); gtk_widget_show (browser->status_image); browser->progress = gtk_progress_bar_new (); gtk_widget_set_name (browser->progress, "ProgressBar"); gtk_box_pack_end (GTK_BOX (hbox), browser->progress, FALSE, FALSE, 0); gtk_widget_show (browser->progress); gtk_widget_show (browser->window); #ifdef ENABLE_MOVIE gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (browser->notebook), 1)); gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif dirview_scroll_center (); timer_id = gtk_timeout_add (100, cb_browser_select_dir, conf.startup_dir); }
void create_window(int *argc, char ***argv) { GList *gtk_baud_list = NULL; int i; gtk_init(argc, argv); firmware_label = gtk_label_new("Firmware:"); gtk_label_set_justify(GTK_LABEL(firmware_label), GTK_JUSTIFY_RIGHT); gtk_widget_show(firmware_label); firmware_entry = gtk_entry_new(); gtk_widget_set_usize(firmware_entry, 110, 0); gtk_entry_set_text(GTK_ENTRY(firmware_entry), file_setting()); gtk_widget_show(firmware_entry); program_button = gtk_button_new_with_label("Program Now"); if (file_exists(file_setting())) { gtk_widget_set_sensitive(program_button, TRUE); } else { gtk_widget_set_sensitive(program_button, FALSE); } gtk_widget_show(program_button); line1_hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(line1_hbox), firmware_label, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(line1_hbox), firmware_entry, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(line1_hbox), program_button, FALSE, FALSE, 2); gtk_widget_show(line1_hbox); port_label = gtk_label_new("Port:"); gtk_label_set_justify(GTK_LABEL(port_label), GTK_JUSTIFY_RIGHT); gtk_widget_show(port_label); port_entry = gtk_entry_new(); gtk_widget_set_usize(port_entry, 80, 0); gtk_entry_set_text(GTK_ENTRY(port_entry), port_setting()); open_serial_port(port_setting()); gtk_widget_show(port_entry); baud_label = gtk_label_new("Baud:"); gtk_label_set_justify(GTK_LABEL(baud_label), GTK_JUSTIFY_RIGHT); gtk_widget_show(baud_label); baud_combo = gtk_combo_new(); for (i = 0; baud_list[i] != NULL; i++) { gtk_baud_list = g_list_append(gtk_baud_list, baud_list[i]); } gtk_combo_set_popdown_strings(GTK_COMBO(baud_combo), gtk_baud_list); gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(baud_combo)->entry), FALSE); gtk_widget_set_usize(baud_combo, 75, 0); for (i = 0; baud_list[i] != NULL; i++) { if (strcmp(baud_list[i], baud_setting()) == 0) { gtk_list_select_item(GTK_LIST(GTK_COMBO(baud_combo)->list), i); break; } } gtk_widget_show(baud_combo); line2_hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(line2_hbox), port_label, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(line2_hbox), port_entry, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(line2_hbox), baud_label, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(line2_hbox), baud_combo, FALSE, FALSE, 2); gtk_widget_show(line2_hbox); crystal_label = gtk_label_new("Crystal:"); gtk_label_set_justify(GTK_LABEL(crystal_label), GTK_JUSTIFY_RIGHT); gtk_widget_show(crystal_label); crystal_entry = gtk_entry_new(); gtk_widget_set_usize(crystal_entry, 80, 0); gtk_entry_set_text(GTK_ENTRY(crystal_entry), crystal_setting()); gtk_widget_show(crystal_entry); mhz_label = gtk_label_new("(MHz)"); gtk_label_set_justify(GTK_LABEL(mhz_label), GTK_JUSTIFY_LEFT); gtk_widget_show(mhz_label); line3_hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(line3_hbox), crystal_label, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(line3_hbox), crystal_entry, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(line3_hbox), mhz_label, FALSE, FALSE, 2); gtk_widget_show(line3_hbox); reboot_button = gtk_button_new_with_label("Reboot"); gtk_widget_set_sensitive(reboot_button, TRUE); gtk_widget_show(reboot_button); bootloader_button = gtk_button_new_with_label("Booloader"); gtk_widget_show(bootloader_button); quit_button = gtk_button_new_with_label("Quit"); gtk_widget_show(quit_button); line4_hbox = gtk_hbox_new(TRUE, 2); gtk_box_pack_start(GTK_BOX(line4_hbox), reboot_button, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(line4_hbox), bootloader_button, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(line4_hbox), quit_button, TRUE, TRUE, 2); gtk_widget_show(line4_hbox); main_vbox = gtk_vbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(main_vbox), line1_hbox, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(main_vbox), line2_hbox, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(main_vbox), line3_hbox, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(main_vbox), line4_hbox, TRUE, TRUE, 2); gtk_widget_show(main_vbox); main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_add(GTK_CONTAINER(main_window), main_vbox); gtk_widget_show(main_window); }
bool loop(int argc, char** argv) { char home[256]; //NEED TO MAKE THIS DYNAMIC strcpy(home, getenv("HOME")); //parse the config file settings.parse_config(strcat(home, config_file)); //load the controls into list ElementList list(settings.card); list_ptr = &list; //reorder the controls to the order specified in the config file settings.reorder_list(&list); //set the scale list.set_scale((Element::scale_t)settings.scaling); //set the auto_mute list.set_auto_mute(settings.auto_mute); //initialize gtk gtk_init(&argc, &argv); //set up the tray_slider that goes in the tray if (settings.enable_tray_icon){ GtkWidget *tray_frame; tray_frame = gtk_alignment_new(0.5,0.0,0,0); settings.tray_slider = new retro_slider; settings.set_tray_slider(&list); settings.apply_to_tray_slider(settings.tray_slider); if (list.num_elems > 0){ settings.tray_slider->init(tray_frame, (void*)settings.tray_control, &Element::get_callback, &Element::set_callback, (settings.tray_control->values > 1)); } else { settings.tray_control = NULL; } //set up the small window that holds the tray_slider settings.slider_window = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_resizable(GTK_WINDOW(settings.slider_window), false); gtk_window_set_decorated(GTK_WINDOW(settings.slider_window), false); gtk_window_set_skip_taskbar_hint(GTK_WINDOW(settings.slider_window), true); gtk_window_set_skip_pager_hint(GTK_WINDOW(settings.slider_window), true); gtk_widget_set_usize(settings.slider_window, settings.tray_slider->width, settings.tray_slider->height); //don't want accidental closure of the slider window to destroy the window g_signal_connect(settings.slider_window, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); //want the widow to go away when it loses focus g_signal_connect(settings.slider_window, "focus-out-event", G_CALLBACK (gtk_widget_hide), NULL); gtk_container_add( GTK_CONTAINER(settings.slider_window), tray_frame ); //we want it hidden by default, but it must be shown at least once or else scrolling over the icon will cause a hang gtk_widget_show_all(settings.slider_window); gtk_widget_hide_all(settings.slider_window); //set up tray icon #if GTK_CHECK_VERSION(2,16,0) settings.tray_icon = gtk_status_icon_new(); gtk_status_icon_set_from_file(settings.tray_icon, VOL_MUTED_IMAGE); #else settings.tray_icon = GTK_WIDGET(egg_tray_icon_new("Retrovol Tray Icon")); //set the background color bool enable_tray_icon_background_color = settings.enable_tray_icon_background_color; GdkColor bg_color; char bg_color_str[8]; if (cmdline_enable_bg_color){ enable_tray_icon_background_color = true; strcpy(bg_color_str, cmdline_bg_color); } else if (settings.enable_tray_icon_background_color){ settings.nftoh(settings.tray_icon_background_color, bg_color_str); } if (enable_tray_icon_background_color){ if (gdk_color_parse(bg_color_str, &bg_color)){ GtkStyle *style = gtk_style_copy(gtk_widget_get_style(settings.tray_icon)); style->bg[GTK_STATE_NORMAL] = bg_color; gtk_widget_set_style(settings.tray_icon, style); } else { fprintf(stderr, _("Error: Failed to set background color to %s\n"), bg_color_str); } } //set up the images settings.tray_icon_image = gtk_image_new(); gtk_container_add( GTK_CONTAINER(settings.tray_icon), settings.tray_icon_image ); gtk_image_set_from_file(GTK_IMAGE(settings.tray_icon_image), VOL_MEDIUM_IMAGE); //set the event mask gtk_widget_set_events (settings.tray_icon, GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK); #endif //signals g_signal_connect(G_OBJECT(settings.tray_icon), "button_press_event", G_CALLBACK (&tray_button_press_event_callback), settings.slider_window); if (settings.tray_control){ g_signal_connect(G_OBJECT(settings.tray_icon), "scroll_event", G_CALLBACK (&retro_slider::scroll_event_callback), settings.tray_slider); } #if GTK_CHECK_VERSION(2,16,0) //make icon visible gtk_status_icon_set_visible(settings.tray_icon, true); #else //handle situations where the icon's window dies, such as due to the tray itself exiting g_signal_connect(G_OBJECT(settings.tray_icon), "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); //make icon visible gtk_widget_show_all(settings.tray_icon); #endif //set up the popup menu (the function checks if it should actually do anything) set_menu(); } //set up the window settings.main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //gtk_window_set_position(GTK_WINDOW(settings.main_window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(settings.main_window), settings.window_width, settings.window_height); gtk_window_set_title(GTK_WINDOW(settings.main_window), "Retrovol"); restore_posdim(); g_signal_connect(settings.main_window, "configure-event", G_CALLBACK (save_posdim), NULL); //if the tray icon is enabled, we want the window to hide rather than closing if (settings.enable_tray_icon){ g_signal_connect(settings.main_window, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); } //make the over_box, which will hold stuff like the menu, status bar, and the actual content in the middle GtkWidget *over_box; over_box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(settings.main_window), over_box); //define the menu GtkItemFactoryEntry menu_items_1[] = { { (gchar*)_("/_File"), NULL, NULL, 0, (gchar*)"<Branch>" }, { (gchar*)_("/File/_Configure"), (gchar*)"<CTRL>C", G_CALLBACK(configure), 0, (gchar*)"<StockItem>", GTK_STOCK_EXECUTE }, { (gchar*)_("/File/_Quit"), (gchar*)"<CTRL>Q", G_CALLBACK(close_window), 0, (gchar*)"<StockItem>", GTK_STOCK_QUIT }, }; gint nmenu_items_1 = sizeof (menu_items_1) / sizeof (menu_items_1[0]); GtkItemFactoryEntry menu_items_2[] = { { (gchar*)_("/_File"), NULL, NULL, 0, (gchar*)"<Branch>" }, { (gchar*)_("/File/_Configure"), (gchar*)"<CTRL>C", G_CALLBACK(configure), 0, (gchar*)"<StockItem>", GTK_STOCK_EXECUTE }, { (gchar*)_("/File/_Exit completely"), (gchar*)"<CTRL>E", G_CALLBACK(gtk_main_quit), 0, (gchar*)"<StockItem>", GTK_STOCK_QUIT }, { (gchar*)_("/File/_Quit"), (gchar*)"<CTRL>Q", G_CALLBACK(close_window), 0, (gchar*)"<StockItem>", GTK_STOCK_QUIT }, }; gint nmenu_items_2 = sizeof (menu_items_2) / sizeof (menu_items_2[0]); GtkItemFactoryEntry *menu_items; gint nmenu_items; //if the tray menu is enabled, don't have the "Exit" entry in the main menu if (settings.enable_tray_menu){ menu_items = menu_items_1; nmenu_items = nmenu_items_1; } else { menu_items = menu_items_2; nmenu_items = nmenu_items_2; } //build the menu GtkWidget *menubar; menubar = get_menubar_menu(settings.main_window, menu_items, nmenu_items, "<RetrovolMain>"); gtk_box_pack_start(GTK_BOX(over_box), menubar, FALSE, TRUE, 0); //use a scrolled window GtkWidget *scrolled_window; scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy((GtkScrolledWindow*)scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(over_box), scrolled_window); //put the stuff into a viewport manually, so we can specify that it should have no shadow GtkWidget *viewport; viewport = gtk_viewport_new(NULL, NULL); gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); gtk_container_add(GTK_CONTAINER(scrolled_window), viewport); //and create an Hbox to hold all the stuff GtkWidget *hbox; if (settings.vertical){ hbox = gtk_hbox_new(TRUE, 2); gtk_container_add(GTK_CONTAINER(viewport), hbox); } else { hbox = gtk_vbox_new(TRUE, 2); gtk_container_add(GTK_CONTAINER(viewport), hbox); } //add the sliders retro_slider *sliders = new retro_slider[list.num_items]; for(int i=0; i<list.num_items; i++){ //use a vbox w/ slider on top and label on bottom GtkWidget *vbox; if (settings.vertical){ vbox = gtk_vbox_new(FALSE, 2); } else { vbox = gtk_hbox_new(FALSE, 2); } gtk_box_pack_start(GTK_BOX(hbox), vbox, false, false, 0); if (strcmp(list.items[i]->type, "INTEGER") == 0){ //integers need sliders //the rslider pseudo-widget likes to be inside a container, lets use a GtkAlignment GtkWidget *frame; if (settings.vertical){ frame = gtk_alignment_new(0.5,0.0,0,0); gtk_box_pack_start(GTK_BOX(vbox), frame, false, false, 0); } else { frame = gtk_alignment_new(0.0,0.5,0,0); gtk_box_pack_end(GTK_BOX(vbox), frame, false, false, 0); } //make the slider and associate with a control settings.apply_to_slider(&sliders[i]); sliders[i].init(frame, (void*)list.items[i], &Element::get_callback, &Element::set_callback, (list.items[i]->values > 1)); } else if (strcmp(list.items[i]->type, "BOOLEAN") == 0){ //booleans need checkboxes GtkWidget *alignment; if (settings.vertical){ alignment = gtk_alignment_new(0.5,1.0,0,0); gtk_box_pack_start(GTK_BOX(vbox), alignment, true, true, 0); } else { alignment = gtk_alignment_new(1.0,0.5,0,0); gtk_box_pack_end(GTK_BOX(vbox), alignment, true, true, 0); } GtkWidget *chkbx; chkbx = gtk_check_button_new(); //set it to the current state gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbx), (bool)list.items[i]->get()); //bind to the toggle_checkbox function Element* ptr = list.items[i]; g_signal_connect(GTK_TOGGLE_BUTTON(chkbx), "toggled", G_CALLBACK (toggle_checkbox), ptr); g_signal_connect_after(GTK_TOGGLE_BUTTON(chkbx), "expose-event", G_CALLBACK (refresh_checkbox), ptr); gtk_container_add(GTK_CONTAINER(alignment), chkbx); } else if (strcmp(list.items[i]->type, "ENUMERATED") == 0){ GtkWidget *alignment; if (settings.vertical){ alignment = gtk_alignment_new(0.5,0.5,0,0); gtk_box_pack_start(GTK_BOX(vbox), alignment, true, true, 0); } else { alignment = gtk_alignment_new(1.0,0.5,0,0); gtk_box_pack_end(GTK_BOX(vbox), alignment, true, true, 0); } //insert a combobox with the different options GtkWidget *combo_box; combo_box=gtk_combo_box_new_text(); for(unsigned int n=0; n<list.items[i]->number_of_enums; n++){ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), list.items[i]->enums[n]); } gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), list.items[i]->get()); //bind to the change_combo_box function g_signal_connect(GTK_COMBO_BOX(combo_box), "changed", G_CALLBACK (change_combo_box), list.items[i]); gtk_container_add(GTK_CONTAINER(alignment), combo_box); } //add a checkbox for sliders that are muteable if (list.items[i]->switch_id >= 0){ GtkWidget *alignment; if (settings.vertical){ alignment = gtk_alignment_new(0.5,1.0,0,0); gtk_box_pack_start(GTK_BOX(vbox), alignment, true, true, 0); } else { alignment = gtk_alignment_new(1.0,0.5,0,0); gtk_box_pack_end(GTK_BOX(vbox), alignment, true, true, 0); } GtkWidget *chkbx; chkbx = gtk_check_button_new(); //set it to the current state gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbx), (bool)list.elems[list.items[i]->switch_id].get()); //bind to the toggle_checkbox function g_signal_connect(GTK_TOGGLE_BUTTON(chkbx), "toggled", G_CALLBACK (toggle_checkbox), &(list.elems[list.items[i]->switch_id])); g_signal_connect_after(GTK_TOGGLE_BUTTON(chkbx), "expose-event", G_CALLBACK (refresh_checkbox), &(list.elems[list.items[i]->switch_id])); gtk_container_add(GTK_CONTAINER(alignment), chkbx); } //display the name of the control GtkWidget *alignment; char wrapped[256]; if (settings.vertical){ alignment = gtk_alignment_new(0.5,1.0,0,0); gtk_box_pack_end(GTK_BOX(vbox), alignment, false, false, 0); word_wrap(wrapped, list.items[i]->short_name); } else { alignment = gtk_alignment_new(1.0,0.5,0,0); gtk_box_pack_start(GTK_BOX(vbox), alignment, false, false, 0); strcpy(wrapped, list.items[i]->short_name); } GtkWidget *label; label = gtk_label_new(wrapped); gtk_container_add(GTK_CONTAINER(alignment), label); } //finish the window stuff if (!start_hidden){ gtk_widget_show_all(settings.main_window); } g_signal_connect(settings.main_window, "destroy", G_CALLBACK (gtk_main_quit), NULL); //add some periodic refreshment to keep the icon and window up-to-date #if GTK_CHECK_VERSION(2,14,0) int timeout = g_timeout_add_seconds(1, update, NULL); #else //this is less efficient than g_timeout_add_seconds() int timeout = g_timeout_add(1000, update, NULL); #endif //finished with gtk setup gtk_main(); //stop the timeout g_source_remove(timeout); //have the window shown again if it was open before we restarted if (settings.resume_main){ settings.resume_main = false; start_hidden = false; } else { start_hidden = true; } return(settings.restart); }
void l_poiupldok(const char *nomdok,GtkWidget *wpredok) { char strsql[512]; iceb_u_str soob; class poiupldok_data data; data.nomdok_p.new_plus(nomdok); data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); sprintf(strsql,"%s %s",name_system,gettext("Поиск документа по номеру")); gtk_window_set_title (GTK_WINDOW (data.window),strsql); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(poiupldok_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); gtk_widget_show(hbox); soob.new_plus(""); data.label_kolstr=gtk_label_new (soob.ravno_toutf()); gtk_box_pack_start (GTK_BOX (vbox2),data.label_kolstr,FALSE, FALSE, 0); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),400,300); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(strsql,"F2 %s",gettext("Просмотр")); data.knopka[FK2]=gtk_button_new_with_label(strsql); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(poiupldok_knopka),&data); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Просмотр выбранного документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(strsql,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(strsql); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE, 0); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(poiupldok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); poiupldok_create_list(&data); gtk_widget_show(data.window); gtk_window_maximize(GTK_WINDOW(data.window)); //gtk_window_fullscreen(GTK_WINDOW(data.window)); gtk_main(); printf("l_poiupldok end\n"); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); }
void FLAC_XMMS__configure(void) { GtkWidget *title_frame, *title_tag_vbox, *title_tag_label; GtkWidget *replaygain_frame, *resolution_frame, *output_vbox, *resolution_normal_frame, *resolution_replaygain_frame; GtkWidget *replaygain_vbox, *resolution_hbox, *resolution_normal_vbox, *resolution_replaygain_vbox; GtkWidget *resolution_replaygain_noise_shaping_vbox; GtkWidget *resolution_replaygain_bps_out_vbox; GtkWidget *label, *hbox; GtkWidget *bbox, *ok, *cancel; GList *list; GtkWidget *streaming_vbox; GtkWidget *streaming_buf_frame, *streaming_buf_hbox; GtkWidget *streaming_size_box, *streaming_size_label, *streaming_size_spin; GtkWidget *streaming_pre_box, *streaming_pre_label, *streaming_pre_spin; GtkWidget *streaming_proxy_frame, *streaming_proxy_vbox; GtkWidget *streaming_proxy_port_label, *streaming_proxy_host_label; GtkWidget *streaming_save_frame, *streaming_save_vbox; GtkWidget *streaming_save_label, *streaming_save_browse; #ifdef FLAC_ICECAST GtkWidget *streaming_cast_frame, *streaming_cast_vbox; #endif char *temp; if (flac_configurewin != NULL) { gdk_window_raise(flac_configurewin->window); return; } flac_configurewin = gtk_window_new(GTK_WINDOW_DIALOG); gtk_signal_connect(GTK_OBJECT(flac_configurewin), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &flac_configurewin); gtk_signal_connect(GTK_OBJECT(flac_configurewin), "destroy", GTK_SIGNAL_FUNC(configure_destroy), &flac_configurewin); gtk_window_set_title(GTK_WINDOW(flac_configurewin), _("Flac Configuration")); gtk_window_set_policy(GTK_WINDOW(flac_configurewin), FALSE, FALSE, FALSE); gtk_container_border_width(GTK_CONTAINER(flac_configurewin), 10); vbox = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(flac_configurewin), vbox); notebook = gtk_notebook_new(); gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); /* Title config.. */ title_frame = gtk_frame_new(_("Tag Handling")); gtk_container_border_width(GTK_CONTAINER(title_frame), 5); title_tag_vbox = gtk_vbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(title_tag_vbox), 5); gtk_container_add(GTK_CONTAINER(title_frame), title_tag_vbox); /* Convert Char Set */ convert_char_set = gtk_check_button_new_with_label(_("Convert Character Set")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(convert_char_set), flac_cfg.title.convert_char_set); gtk_signal_connect(GTK_OBJECT(convert_char_set), "clicked", convert_char_set_cb, NULL); gtk_box_pack_start(GTK_BOX(title_tag_vbox), convert_char_set, FALSE, FALSE, 0); /* Combo boxes... */ hbox = gtk_hbox_new(FALSE,4); gtk_container_add(GTK_CONTAINER(title_tag_vbox),hbox); label = gtk_label_new(_("Convert character set from :")); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); fileCharacterSetEntry = gtk_combo_new(); gtk_box_pack_start(GTK_BOX(hbox),fileCharacterSetEntry,TRUE,TRUE,0); label = gtk_label_new (_("to :")); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); userCharacterSetEntry = gtk_combo_new(); gtk_box_pack_start(GTK_BOX(hbox),userCharacterSetEntry,TRUE,TRUE,0); gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(fileCharacterSetEntry)->entry),FALSE); gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(userCharacterSetEntry)->entry),FALSE); gtk_combo_set_value_in_list(GTK_COMBO(fileCharacterSetEntry),TRUE,FALSE); gtk_combo_set_value_in_list(GTK_COMBO(userCharacterSetEntry),TRUE,FALSE); list = Charset_Create_List(); gtk_combo_set_popdown_strings(GTK_COMBO(fileCharacterSetEntry),Charset_Create_List_UTF8_Only()); gtk_combo_set_popdown_strings(GTK_COMBO(userCharacterSetEntry),list); gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(userCharacterSetEntry)->entry),Charset_Get_Title_From_Name(flac_cfg.title.user_char_set)); gtk_widget_set_sensitive(fileCharacterSetEntry, FALSE); gtk_widget_set_sensitive(userCharacterSetEntry, flac_cfg.title.convert_char_set); /* Override Tagging Format */ title_tag_override = gtk_check_button_new_with_label(_("Override generic titles")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(title_tag_override), flac_cfg.title.tag_override); gtk_signal_connect(GTK_OBJECT(title_tag_override), "clicked", title_tag_override_cb, NULL); gtk_box_pack_start(GTK_BOX(title_tag_vbox), title_tag_override, FALSE, FALSE, 0); title_tag_box = gtk_hbox_new(FALSE, 5); gtk_widget_set_sensitive(title_tag_box, flac_cfg.title.tag_override); gtk_box_pack_start(GTK_BOX(title_tag_vbox), title_tag_box, FALSE, FALSE, 0); title_tag_label = gtk_label_new(_("Title format:")); gtk_box_pack_start(GTK_BOX(title_tag_box), title_tag_label, FALSE, FALSE, 0); title_tag_entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(title_tag_entry), flac_cfg.title.tag_format); gtk_box_pack_start(GTK_BOX(title_tag_box), title_tag_entry, TRUE, TRUE, 0); title_desc = xmms_titlestring_descriptions("pafFetnygc", 2); gtk_widget_set_sensitive(title_desc, flac_cfg.title.tag_override); gtk_box_pack_start(GTK_BOX(title_tag_vbox), title_desc, FALSE, FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), title_frame, gtk_label_new(_("Title"))); /* Output config.. */ output_vbox = gtk_vbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(output_vbox), 5); /* replaygain */ replaygain_frame = gtk_frame_new(_("ReplayGain")); gtk_container_border_width(GTK_CONTAINER(replaygain_frame), 5); gtk_box_pack_start(GTK_BOX(output_vbox), replaygain_frame, TRUE, TRUE, 0); replaygain_vbox = gtk_vbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(replaygain_vbox), 5); gtk_container_add(GTK_CONTAINER(replaygain_frame), replaygain_vbox); replaygain_enable = gtk_check_button_new_with_label(_("Enable ReplayGain processing")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(replaygain_enable), flac_cfg.output.replaygain.enable); gtk_signal_connect(GTK_OBJECT(replaygain_enable), "clicked", replaygain_enable_cb, NULL); gtk_box_pack_start(GTK_BOX(replaygain_vbox), replaygain_enable, FALSE, FALSE, 0); replaygain_album_mode = gtk_check_button_new_with_label(_("Album mode")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(replaygain_album_mode), flac_cfg.output.replaygain.album_mode); gtk_signal_connect(GTK_OBJECT(replaygain_album_mode), "clicked", replaygain_album_mode_cb, NULL); gtk_box_pack_start(GTK_BOX(replaygain_vbox), replaygain_album_mode, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE,3); gtk_container_add(GTK_CONTAINER(replaygain_vbox),hbox); label = gtk_label_new(_("Preamp:")); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); replaygain_preamp = gtk_adjustment_new(flac_cfg.output.replaygain.preamp, -24.0, +24.0, 1.0, 6.0, 0.0); gtk_signal_connect(GTK_OBJECT(replaygain_preamp), "value-changed", replaygain_preamp_cb, NULL); replaygain_preamp_hscale = gtk_hscale_new(GTK_ADJUSTMENT(replaygain_preamp)); gtk_scale_set_draw_value(GTK_SCALE(replaygain_preamp_hscale), FALSE); gtk_box_pack_start(GTK_BOX(hbox),replaygain_preamp_hscale,TRUE,TRUE,0); replaygain_preamp_label = gtk_label_new(_("0 dB")); gtk_box_pack_start(GTK_BOX(hbox),replaygain_preamp_label,FALSE,FALSE,0); gtk_adjustment_value_changed(GTK_ADJUSTMENT(replaygain_preamp)); replaygain_hard_limit = gtk_check_button_new_with_label(_("6dB hard limiting")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(replaygain_hard_limit), flac_cfg.output.replaygain.hard_limit); gtk_signal_connect(GTK_OBJECT(replaygain_hard_limit), "clicked", replaygain_hard_limit_cb, NULL); gtk_box_pack_start(GTK_BOX(replaygain_vbox), replaygain_hard_limit, FALSE, FALSE, 0); replaygain_enable_cb(replaygain_enable, NULL); /* resolution */ resolution_frame = gtk_frame_new(_("Resolution")); gtk_container_border_width(GTK_CONTAINER(resolution_frame), 5); gtk_box_pack_start(GTK_BOX(output_vbox), resolution_frame, TRUE, TRUE, 0); resolution_hbox = gtk_hbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(resolution_hbox), 5); gtk_container_add(GTK_CONTAINER(resolution_frame), resolution_hbox); resolution_normal_frame = gtk_frame_new(_("Without ReplayGain")); gtk_container_border_width(GTK_CONTAINER(resolution_normal_frame), 5); gtk_box_pack_start(GTK_BOX(resolution_hbox), resolution_normal_frame, TRUE, TRUE, 0); resolution_normal_vbox = gtk_vbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(resolution_normal_vbox), 5); gtk_container_add(GTK_CONTAINER(resolution_normal_frame), resolution_normal_vbox); resolution_normal_dither_24_to_16 = gtk_check_button_new_with_label(_("Dither 24bps to 16bps")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_normal_dither_24_to_16), flac_cfg.output.resolution.normal.dither_24_to_16); gtk_signal_connect(GTK_OBJECT(resolution_normal_dither_24_to_16), "clicked", resolution_normal_dither_24_to_16_cb, NULL); gtk_box_pack_start(GTK_BOX(resolution_normal_vbox), resolution_normal_dither_24_to_16, FALSE, FALSE, 0); resolution_replaygain_frame = gtk_frame_new(_("With ReplayGain")); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_frame), 5); gtk_box_pack_start(GTK_BOX(resolution_hbox), resolution_replaygain_frame, TRUE, TRUE, 0); resolution_replaygain_vbox = gtk_vbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_vbox), 5); gtk_container_add(GTK_CONTAINER(resolution_replaygain_frame), resolution_replaygain_vbox); resolution_replaygain_dither = gtk_check_button_new_with_label(_("Enable dithering")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_dither), flac_cfg.output.resolution.replaygain.dither); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_dither), "clicked", resolution_replaygain_dither_cb, NULL); gtk_box_pack_start(GTK_BOX(resolution_replaygain_vbox), resolution_replaygain_dither, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 10); gtk_container_border_width(GTK_CONTAINER(hbox), 5); gtk_box_pack_start(GTK_BOX(resolution_replaygain_vbox), hbox, TRUE, TRUE, 0); resolution_replaygain_noise_shaping_frame = gtk_frame_new(_("Noise shaping")); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_noise_shaping_frame), 5); gtk_box_pack_start(GTK_BOX(hbox), resolution_replaygain_noise_shaping_frame, TRUE, TRUE, 0); resolution_replaygain_noise_shaping_vbox = gtk_vbutton_box_new(); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_noise_shaping_vbox), 5); gtk_container_add(GTK_CONTAINER(resolution_replaygain_noise_shaping_frame), resolution_replaygain_noise_shaping_vbox); resolution_replaygain_noise_shaping_radio_none = gtk_radio_button_new_with_label(NULL, _("none")); if(flac_cfg.output.resolution.replaygain.noise_shaping == 0) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_noise_shaping_radio_none), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_noise_shaping_radio_none), "clicked", resolution_replaygain_noise_shaping_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_noise_shaping_vbox), resolution_replaygain_noise_shaping_radio_none); resolution_replaygain_noise_shaping_radio_low = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(resolution_replaygain_noise_shaping_radio_none), _("low")); if(flac_cfg.output.resolution.replaygain.noise_shaping == 1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_noise_shaping_radio_low), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_noise_shaping_radio_low), "clicked", resolution_replaygain_noise_shaping_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_noise_shaping_vbox), resolution_replaygain_noise_shaping_radio_low); resolution_replaygain_noise_shaping_radio_medium = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(resolution_replaygain_noise_shaping_radio_none), _("medium")); if(flac_cfg.output.resolution.replaygain.noise_shaping == 2) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_noise_shaping_radio_medium), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_noise_shaping_radio_medium), "clicked", resolution_replaygain_noise_shaping_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_noise_shaping_vbox), resolution_replaygain_noise_shaping_radio_medium); resolution_replaygain_noise_shaping_radio_high = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(resolution_replaygain_noise_shaping_radio_none), _("high")); if(flac_cfg.output.resolution.replaygain.noise_shaping == 3) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_noise_shaping_radio_high), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_noise_shaping_radio_high), "clicked", resolution_replaygain_noise_shaping_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_noise_shaping_vbox), resolution_replaygain_noise_shaping_radio_high); resolution_replaygain_bps_out_frame = gtk_frame_new(_("Dither to")); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_bps_out_frame), 5); gtk_box_pack_start(GTK_BOX(hbox), resolution_replaygain_bps_out_frame, FALSE, FALSE, 0); resolution_replaygain_bps_out_vbox = gtk_vbutton_box_new(); gtk_container_border_width(GTK_CONTAINER(resolution_replaygain_bps_out_vbox), 0); gtk_container_add(GTK_CONTAINER(resolution_replaygain_bps_out_frame), resolution_replaygain_bps_out_vbox); resolution_replaygain_bps_out_radio_16bps = gtk_radio_button_new_with_label(NULL, _("16 bps")); if(flac_cfg.output.resolution.replaygain.bps_out == 16) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_bps_out_radio_16bps), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_bps_out_radio_16bps), "clicked", resolution_replaygain_bps_out_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_bps_out_vbox), resolution_replaygain_bps_out_radio_16bps); resolution_replaygain_bps_out_radio_24bps = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(resolution_replaygain_bps_out_radio_16bps), _("24 bps")); if(flac_cfg.output.resolution.replaygain.bps_out == 24) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(resolution_replaygain_bps_out_radio_24bps), TRUE); gtk_signal_connect(GTK_OBJECT(resolution_replaygain_bps_out_radio_24bps), "clicked", resolution_replaygain_bps_out_cb, NULL); gtk_container_add(GTK_CONTAINER(resolution_replaygain_bps_out_vbox), resolution_replaygain_bps_out_radio_24bps); resolution_replaygain_dither_cb(resolution_replaygain_dither, NULL); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), output_vbox, gtk_label_new(_("Output"))); /* Streaming */ streaming_vbox = gtk_vbox_new(FALSE, 0); streaming_buf_frame = gtk_frame_new(_("Buffering:")); gtk_container_set_border_width(GTK_CONTAINER(streaming_buf_frame), 5); gtk_box_pack_start(GTK_BOX(streaming_vbox), streaming_buf_frame, FALSE, FALSE, 0); streaming_buf_hbox = gtk_hbox_new(TRUE, 5); gtk_container_set_border_width(GTK_CONTAINER(streaming_buf_hbox), 5); gtk_container_add(GTK_CONTAINER(streaming_buf_frame), streaming_buf_hbox); streaming_size_box = gtk_hbox_new(FALSE, 5); /*gtk_table_attach_defaults(GTK_TABLE(streaming_buf_table),streaming_size_box,0,1,0,1); */ gtk_box_pack_start(GTK_BOX(streaming_buf_hbox), streaming_size_box, TRUE, TRUE, 0); streaming_size_label = gtk_label_new(_("Buffer size (kb):")); gtk_box_pack_start(GTK_BOX(streaming_size_box), streaming_size_label, FALSE, FALSE, 0); streaming_size_adj = gtk_adjustment_new(flac_cfg.stream.http_buffer_size, 4, 4096, 4, 4, 4); streaming_size_spin = gtk_spin_button_new(GTK_ADJUSTMENT(streaming_size_adj), 8, 0); gtk_widget_set_usize(streaming_size_spin, 60, -1); gtk_box_pack_start(GTK_BOX(streaming_size_box), streaming_size_spin, FALSE, FALSE, 0); streaming_pre_box = gtk_hbox_new(FALSE, 5); /*gtk_table_attach_defaults(GTK_TABLE(streaming_buf_table),streaming_pre_box,1,2,0,1); */ gtk_box_pack_start(GTK_BOX(streaming_buf_hbox), streaming_pre_box, TRUE, TRUE, 0); streaming_pre_label = gtk_label_new(_("Pre-buffer (percent):")); gtk_box_pack_start(GTK_BOX(streaming_pre_box), streaming_pre_label, FALSE, FALSE, 0); streaming_pre_adj = gtk_adjustment_new(flac_cfg.stream.http_prebuffer, 0, 90, 1, 1, 1); streaming_pre_spin = gtk_spin_button_new(GTK_ADJUSTMENT(streaming_pre_adj), 1, 0); gtk_widget_set_usize(streaming_pre_spin, 60, -1); gtk_box_pack_start(GTK_BOX(streaming_pre_box), streaming_pre_spin, FALSE, FALSE, 0); /* * Proxy config. */ streaming_proxy_frame = gtk_frame_new(_("Proxy:")); gtk_container_set_border_width(GTK_CONTAINER(streaming_proxy_frame), 5); gtk_box_pack_start(GTK_BOX(streaming_vbox), streaming_proxy_frame, FALSE, FALSE, 0); streaming_proxy_vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(streaming_proxy_vbox), 5); gtk_container_add(GTK_CONTAINER(streaming_proxy_frame), streaming_proxy_vbox); streaming_proxy_use = gtk_check_button_new_with_label(_("Use proxy")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_use), flac_cfg.stream.use_proxy); gtk_signal_connect(GTK_OBJECT(streaming_proxy_use), "clicked", GTK_SIGNAL_FUNC(proxy_use_cb), NULL); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_use, FALSE, FALSE, 0); streaming_proxy_hbox = gtk_hbox_new(FALSE, 5); gtk_widget_set_sensitive(streaming_proxy_hbox, flac_cfg.stream.use_proxy); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_hbox, FALSE, FALSE, 0); streaming_proxy_host_label = gtk_label_new(_("Host:")); gtk_box_pack_start(GTK_BOX(streaming_proxy_hbox), streaming_proxy_host_label, FALSE, FALSE, 0); streaming_proxy_host_entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(streaming_proxy_host_entry), flac_cfg.stream.proxy_host); gtk_box_pack_start(GTK_BOX(streaming_proxy_hbox), streaming_proxy_host_entry, TRUE, TRUE, 0); streaming_proxy_port_label = gtk_label_new(_("Port:")); gtk_box_pack_start(GTK_BOX(streaming_proxy_hbox), streaming_proxy_port_label, FALSE, FALSE, 0); streaming_proxy_port_entry = gtk_entry_new(); gtk_widget_set_usize(streaming_proxy_port_entry, 50, -1); temp = g_strdup_printf("%d", flac_cfg.stream.proxy_port); gtk_entry_set_text(GTK_ENTRY(streaming_proxy_port_entry), temp); g_free(temp); gtk_box_pack_start(GTK_BOX(streaming_proxy_hbox), streaming_proxy_port_entry, FALSE, FALSE, 0); streaming_proxy_auth_use = gtk_check_button_new_with_label(_("Use authentication")); gtk_widget_set_sensitive(streaming_proxy_auth_use, flac_cfg.stream.use_proxy); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_auth_use), flac_cfg.stream.proxy_use_auth); gtk_signal_connect(GTK_OBJECT(streaming_proxy_auth_use), "clicked", GTK_SIGNAL_FUNC(proxy_auth_use_cb), NULL); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_auth_use, FALSE, FALSE, 0); streaming_proxy_auth_hbox = gtk_hbox_new(FALSE, 5); gtk_widget_set_sensitive(streaming_proxy_auth_hbox, flac_cfg.stream.use_proxy && flac_cfg.stream.proxy_use_auth); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_auth_hbox, FALSE, FALSE, 0); streaming_proxy_auth_user_label = gtk_label_new(_("Username:"******"Password:"******"Save stream to disk:")); gtk_container_set_border_width(GTK_CONTAINER(streaming_save_frame), 5); gtk_box_pack_start(GTK_BOX(streaming_vbox), streaming_save_frame, FALSE, FALSE, 0); streaming_save_vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(streaming_save_vbox), 5); gtk_container_add(GTK_CONTAINER(streaming_save_frame), streaming_save_vbox); streaming_save_use = gtk_check_button_new_with_label(_("Save stream to disk")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_save_use), flac_cfg.stream.save_http_stream); gtk_signal_connect(GTK_OBJECT(streaming_save_use), "clicked", GTK_SIGNAL_FUNC(streaming_save_use_cb), NULL); gtk_box_pack_start(GTK_BOX(streaming_save_vbox), streaming_save_use, FALSE, FALSE, 0); streaming_save_hbox = gtk_hbox_new(FALSE, 5); gtk_widget_set_sensitive(streaming_save_hbox, flac_cfg.stream.save_http_stream); gtk_box_pack_start(GTK_BOX(streaming_save_vbox), streaming_save_hbox, FALSE, FALSE, 0); streaming_save_label = gtk_label_new(_("Path:")); gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_label, FALSE, FALSE, 0); streaming_save_entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(streaming_save_entry), flac_cfg.stream.save_http_path); gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_entry, TRUE, TRUE, 0); streaming_save_browse = gtk_button_new_with_label(_("Browse")); gtk_signal_connect(GTK_OBJECT(streaming_save_browse), "clicked", GTK_SIGNAL_FUNC(streaming_save_browse_cb), NULL); gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_browse, FALSE, FALSE, 0); #ifdef FLAC_ICECAST streaming_cast_frame = gtk_frame_new(_("SHOUT/Icecast:")); gtk_container_set_border_width(GTK_CONTAINER(streaming_cast_frame), 5); gtk_box_pack_start(GTK_BOX(streaming_vbox), streaming_cast_frame, FALSE, FALSE, 0); streaming_cast_vbox = gtk_vbox_new(5, FALSE); gtk_container_add(GTK_CONTAINER(streaming_cast_frame), streaming_cast_vbox); streaming_cast_title = gtk_check_button_new_with_label(_("Enable SHOUT/Icecast title streaming")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_cast_title), flac_cfg.stream.cast_title_streaming); gtk_box_pack_start(GTK_BOX(streaming_cast_vbox), streaming_cast_title, FALSE, FALSE, 0); streaming_udp_title = gtk_check_button_new_with_label(_("Enable Icecast Metadata UDP Channel")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_udp_title), flac_cfg.stream.use_udp_channel); gtk_box_pack_start(GTK_BOX(streaming_cast_vbox), streaming_udp_title, FALSE, FALSE, 0); #endif gtk_notebook_append_page(GTK_NOTEBOOK(notebook), streaming_vbox, gtk_label_new(_("Streaming"))); /* Buttons */ bbox = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); ok = gtk_button_new_with_label(_("Ok")); gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(flac_configurewin_ok), NULL); GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); gtk_widget_grab_default(ok); cancel = gtk_button_new_with_label(_("Cancel")); gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(flac_configurewin)); GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); gtk_widget_show_all(flac_configurewin); }
void wxPopupWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) { wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") ); wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid dialog") ); if (m_resizing) return; /* I don't like recursions */ m_resizing = true; int old_x = m_x; int old_y = m_y; int old_width = m_width; int old_height = m_height; if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) { if (x != -1) m_x = x; if (y != -1) m_y = y; if (width != -1) m_width = width; if (height != -1) m_height = height; } else { m_x = x; m_y = y; m_width = width; m_height = height; } /* if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) { if (width == -1) m_width = 80; } if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) { if (height == -1) m_height = 26; } */ int minWidth = GetMinWidth(), minHeight = GetMinHeight(), maxWidth = GetMaxWidth(), maxHeight = GetMaxHeight(); if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth; if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight; if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth; if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight; if ((m_x != -1) || (m_y != -1)) { if ((m_x != old_x) || (m_y != old_y)) { /* we set the position here and when showing the dialog for the first time in idle time */ gtk_widget_set_uposition( m_widget, m_x, m_y ); } } if ((m_width != old_width) || (m_height != old_height)) { gtk_widget_set_usize( m_widget, m_width, m_height ); /* actual resizing is deferred to GtkOnSize in idle time and when showing the dialog */ m_sizeSet = false; } m_resizing = false; }
/* * mainline.. */ void ptrans_searchbox(char *title) { int i; GtkWidget *scrolled_win; GtkWidget *vbox1, *hbox, *hbox0; GtkWidget *button1, *button5, *button6; gchar *titles[]={"Process Filter Select"}; GtkWidget *frame2, *frameh, *frameh0; GtkWidget *table; GtkTooltips *tooltips; if(GLOBALS->is_active_ptranslate_c_2) { gdk_window_raise(GLOBALS->window_ptranslate_c_5->window); return; } GLOBALS->is_active_ptranslate_c_2=1; GLOBALS->current_filter_ptranslate_c_1 = 0; /* create a new modal window */ GLOBALS->window_ptranslate_c_5 = gtk_window_new(GLOBALS->disable_window_manager ? GTK_WINDOW_POPUP : GTK_WINDOW_TOPLEVEL); install_focus_cb(GLOBALS->window_ptranslate_c_5, ((char *)&GLOBALS->window_ptranslate_c_5) - ((char *)GLOBALS)); gtk_window_set_title(GTK_WINDOW (GLOBALS->window_ptranslate_c_5), title); gtkwave_signal_connect(GTK_OBJECT (GLOBALS->window_ptranslate_c_5), "delete_event",(GtkSignalFunc) destroy_callback, NULL); tooltips=gtk_tooltips_new_2(); table = gtk_table_new (256, 1, FALSE); gtk_widget_show (table); vbox1 = gtk_vbox_new (FALSE, 0); gtk_container_border_width (GTK_CONTAINER (vbox1), 3); gtk_widget_show (vbox1); frame2 = gtk_frame_new (NULL); gtk_container_border_width (GTK_CONTAINER (frame2), 3); gtk_widget_show(frame2); gtk_table_attach (GTK_TABLE (table), frame2, 0, 1, 0, 254, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 1, 1); GLOBALS->clist_ptranslate_c_2=gtk_clist_new_with_titles(1,titles); gtk_clist_column_titles_passive(GTK_CLIST(GLOBALS->clist_ptranslate_c_2)); gtk_clist_set_selection_mode(GTK_CLIST(GLOBALS->clist_ptranslate_c_2), GTK_SELECTION_EXTENDED); gtkwave_signal_connect_object (GTK_OBJECT (GLOBALS->clist_ptranslate_c_2), "select_row",GTK_SIGNAL_FUNC(select_row_callback),NULL); gtkwave_signal_connect_object (GTK_OBJECT (GLOBALS->clist_ptranslate_c_2), "unselect_row",GTK_SIGNAL_FUNC(unselect_row_callback),NULL); for(i=0;i<GLOBALS->num_proc_filters;i++) { gtk_clist_append(GTK_CLIST(GLOBALS->clist_ptranslate_c_2),(gchar **)&(GLOBALS->procsel_filter[i+1])); } gtk_clist_set_column_width(GTK_CLIST(GLOBALS->clist_ptranslate_c_2),0,gtk_clist_optimal_column_width(GTK_CLIST(GLOBALS->clist_ptranslate_c_2),0)); gtk_widget_show (GLOBALS->clist_ptranslate_c_2); scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_usize( GTK_WIDGET (scrolled_win), -1, 300); gtk_widget_show(scrolled_win); /* gtk_scrolled_window_add_with_viewport doesn't seen to work right here.. */ gtk_container_add (GTK_CONTAINER (scrolled_win), GLOBALS->clist_ptranslate_c_2); gtk_container_add (GTK_CONTAINER (frame2), scrolled_win); frameh0 = gtk_frame_new (NULL); gtk_container_border_width (GTK_CONTAINER (frameh0), 3); gtk_widget_show(frameh0); gtk_table_attach (GTK_TABLE (table), frameh0, 0, 1, 254, 255, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 1, 1); hbox0 = gtk_hbox_new (FALSE, 1); gtk_widget_show (hbox0); button6 = gtk_button_new_with_label (" Add Proc Filter to List "); gtk_container_border_width (GTK_CONTAINER (button6), 3); gtkwave_signal_connect_object (GTK_OBJECT (button6), "clicked",GTK_SIGNAL_FUNC(add_filter_callback),GTK_OBJECT (GLOBALS->window_ptranslate_c_5)); gtk_widget_show (button6); gtk_tooltips_set_tip_2(tooltips, button6, "Bring up a file requester to add a process filter to the filter select window.",NULL); gtk_box_pack_start (GTK_BOX (hbox0), button6, TRUE, FALSE, 0); gtk_container_add (GTK_CONTAINER (frameh0), hbox0); frameh = gtk_frame_new (NULL); gtk_container_border_width (GTK_CONTAINER (frameh), 3); gtk_widget_show(frameh); gtk_table_attach (GTK_TABLE (table), frameh, 0, 1, 255, 256, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 1, 1); hbox = gtk_hbox_new (FALSE, 1); gtk_widget_show (hbox); button1 = gtk_button_new_with_label (" OK "); gtk_container_border_width (GTK_CONTAINER (button1), 3); gtkwave_signal_connect_object (GTK_OBJECT (button1), "clicked",GTK_SIGNAL_FUNC(ok_callback),GTK_OBJECT (GLOBALS->window_ptranslate_c_5)); gtk_widget_show (button1); gtk_tooltips_set_tip_2(tooltips, button1, "Add selected signals to end of the display on the main window.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button1, TRUE, FALSE, 0); button5 = gtk_button_new_with_label (" Cancel "); gtk_container_border_width (GTK_CONTAINER (button5), 3); gtkwave_signal_connect_object (GTK_OBJECT (button5), "clicked",GTK_SIGNAL_FUNC(destroy_callback),GTK_OBJECT (GLOBALS->window_ptranslate_c_5)); gtk_tooltips_set_tip_2(tooltips, button5, "Do nothing and return to the main window.",NULL); gtk_widget_show (button5); gtk_box_pack_start (GTK_BOX (hbox), button5, TRUE, FALSE, 0); gtk_container_add (GTK_CONTAINER (frameh), hbox); gtk_container_add (GTK_CONTAINER (GLOBALS->window_ptranslate_c_5), table); gtk_widget_set_usize(GTK_WIDGET(GLOBALS->window_ptranslate_c_5), 400, 400); gtk_widget_show(GLOBALS->window_ptranslate_c_5); }
int vrshet_v(short *god,iceb_u_str *nomdok,GtkWidget *wpredok) { vrshet_v_data data; char strsql[300]; if(*god > 0) { SQL_str row; SQLCURSOR cur; sprintf(strsql,"select * from Restdok where god=%d and nomd='%s'", *god,nomdok->ravno()); if(sql_readkey(&bd,strsql,&row,&cur) != 1) { iceb_u_str repl; repl.plus(gettext("Не найдена запись для корректировки !")); iceb_menu_soob(&repl,wpredok); return(1); } data.rekh.nomdok.new_plus(row[1]); iceb_u_rsdat(&data.rekh.d,&data.rekh.m,&data.rekh.g,row[2],2); data.rekh.nomstol.new_plus(row[4]); data.rekh.kodkl.new_plus(row[5]); data.rekh.famil.new_plus(row[6]); data.rekh.koment.new_plus(row[7]); data.rekh.metka=1; } data.window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); if(config_dev.metka_screen == 1) gtk_widget_set_usize(data.window,-1,600); if(wpredok != NULL) { //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } if(*god == 0) sprintf(strsql,"%s %s",name_system,gettext("Ввод нового счета")); else sprintf(strsql,"%s %s",name_system,gettext("Корректировка шапки счета")); gtk_window_set_title (GTK_WINDOW (data.window),strsql); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(vrshet_v_key_press),&data); time_t vrem; struct tm *bf; time(&vrem); bf=localtime(&vrem); GtkWidget *label; if(*god == 0) { iceb_u_str nadpis; nadpis.plus(gettext("Ввод нового счета")); sprintf(strsql,"%s %d.%d.%d",gettext("Текущая дата"), bf->tm_mday, bf->tm_mon+1, bf->tm_year+1900); nadpis.ps_plus(strsql); label=gtk_label_new(nadpis.ravno_toutf()); } else label=gtk_label_new(gettext("Корректировка шапки счета")); GtkWidget *vbox = gtk_vbox_new (FALSE, 0); GtkWidget *hbox[KOLENTER]; for(int i=0; i < KOLENTER; i++) hbox[i] = gtk_hbox_new (FALSE, 0); GtkWidget *hboxknop = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (data.window), vbox); gtk_container_add (GTK_CONTAINER (vbox), label); for(int i=0; i < KOLENTER; i++) gtk_container_add (GTK_CONTAINER (vbox), hbox[i]); gtk_container_add (GTK_CONTAINER (vbox), hboxknop); data.knopka_enter[E_NOMST]=gtk_button_new_with_label(gettext("Номер столика")); gtk_box_pack_start (GTK_BOX (hbox[E_NOMST]), data.knopka_enter[E_NOMST], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_NOMST]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_NOMST]),(gpointer)E_NOMST); data.entry[E_NOMST] = gtk_entry_new_with_max_length (10); gtk_box_pack_start (GTK_BOX (hbox[E_NOMST]), data.entry[E_NOMST], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_NOMST]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_NOMST]),data.rekh.nomstol.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_NOMST]),(gpointer)E_NOMST); data.knopka_enter[E_KODKL]=gtk_button_new_with_label(gettext("Код клиента")); gtk_box_pack_start (GTK_BOX (hbox[E_KODKL]), data.knopka_enter[E_KODKL], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_KODKL]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_KODKL]),(gpointer)E_KODKL); data.entry[E_KODKL] = gtk_entry_new_with_max_length (20); gtk_box_pack_start (GTK_BOX (hbox[E_KODKL]), data.entry[E_KODKL], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_KODKL]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_KODKL]),data.rekh.kodkl.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_KODKL]),(gpointer)E_KODKL); #ifdef READ_CARD extern tdcon td_server; if(td_server >= 0) { class iceb_read_card_enter_data card; card.window=data.window; card.entry=data.entry[E_KODKL]; data.timer=card.timer=gtk_timeout_add(500,(GtkFunction)iceb_read_card_enter,&card); } #endif data.knopka_enter[E_FAMIL]=gtk_button_new_with_label(gettext("Фамилия клиента")); gtk_box_pack_start (GTK_BOX (hbox[E_FAMIL]), data.knopka_enter[E_FAMIL], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_FAMIL]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_FAMIL]),(gpointer)E_FAMIL); data.entry[E_FAMIL] = gtk_entry_new_with_max_length (60); gtk_box_pack_start (GTK_BOX (hbox[E_FAMIL]), data.entry[E_FAMIL], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_FAMIL]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_FAMIL]),data.rekh.famil.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_FAMIL]),(gpointer)E_FAMIL); data.knopka_enter[E_KOMENT]=gtk_button_new_with_label(gettext("Комментарий")); gtk_box_pack_start (GTK_BOX (hbox[E_KOMENT]), data.knopka_enter[E_KOMENT], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_KOMENT]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_KOMENT]),(gpointer)E_KOMENT); data.entry[E_KOMENT] = gtk_entry_new_with_max_length (99); gtk_box_pack_start (GTK_BOX (hbox[E_KOMENT]), data.entry[E_KOMENT], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_KOMENT]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_KOMENT]),data.rekh.koment.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_KOMENT]),(gpointer)E_KOMENT); data.knopka_enter[E_PODR]=gtk_button_new_with_label(gettext("Подразделение")); gtk_box_pack_start (GTK_BOX (hbox[E_PODR]), data.knopka_enter[E_PODR], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_PODR]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_PODR]),(gpointer)E_PODR); data.entry[E_PODR] = gtk_entry_new_with_max_length (10); gtk_box_pack_start (GTK_BOX (hbox[E_PODR]), data.entry[E_PODR], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_PODR]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); if(kodpodr != 0) { sprintf(strsql,"%d %s",kodpodr,naimpodr.ravno()); data.rekh.podr.new_plus(strsql); } gtk_entry_set_text(GTK_ENTRY(data.entry[E_PODR]),data.rekh.podr.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_PODR]),(gpointer)E_PODR); data.knopka_enter[E_DATAZ]=gtk_button_new_with_label(gettext("Дата заказа")); gtk_box_pack_start (GTK_BOX (hbox[E_DATAZ]), data.knopka_enter[E_DATAZ], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_DATAZ]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_DATAZ]),(gpointer)E_DATAZ); //label=gtk_label_new(gettext("Дата заказа")); data.entry[E_DATAZ] = gtk_entry_new_with_max_length (10); //gtk_box_pack_start (GTK_BOX (hbox[nomhbox]), label, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox[E_DATAZ]), data.entry[E_DATAZ], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_DATAZ]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_DATAZ]),data.rekh.dataz.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_DATAZ]),(gpointer)E_DATAZ); data.knopka_enter[E_VREMZ]=gtk_button_new_with_label(gettext("Время заказа")); gtk_box_pack_start (GTK_BOX (hbox[E_VREMZ]), data.knopka_enter[E_VREMZ], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka_enter[E_VREMZ]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_e_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka_enter[E_VREMZ]),(gpointer)E_VREMZ); data.entry[E_VREMZ] = gtk_entry_new_with_max_length (8); gtk_box_pack_start (GTK_BOX (hbox[E_VREMZ]), data.entry[E_VREMZ], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT (data.entry[E_VREMZ]), "activate",GTK_SIGNAL_FUNC(vrshet_v_vvod),&data); gtk_entry_set_text(GTK_ENTRY(data.entry[E_VREMZ]),data.rekh.vremz.ravno_toutf()); gtk_object_set_user_data(GTK_OBJECT(data.entry[E_VREMZ]),(gpointer)E_VREMZ); GtkTooltips *tooltips[KOL_F_KL]; sprintf(strsql,"F2 %s",gettext("Запись")); data.knopka[FK2]=gtk_button_new_with_label(strsql); gtk_box_pack_start(GTK_BOX(hboxknop), data.knopka[FK2], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Запись введенной в меню информации"),NULL); sprintf(strsql,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(strsql); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]),"clicked",GTK_SIGNAL_FUNC(vrshet_v_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_box_pack_start(GTK_BOX(hboxknop), data.knopka[FK10], TRUE, TRUE, 0); gtk_widget_grab_focus(data.entry[0]); gtk_widget_show_all (data.window); //gtk_window_maximize(GTK_WINDOW(data.window)); //gtk_window_fullscreen(GTK_WINDOW(data.window)); gtk_main(); *god=data.rekh.g; nomdok->new_plus(data.rekh.nomdok.ravno()); return(data.voz); }
void l_uosspdok(short ds,short ms,short gs, //Дата начала просмотра GtkWidget *wpredok) { class uosspdok_data data; char bros[512]; GdkColor color; data.ds=data.dn=ds; data.ms=data.mn=ms; data.gs=data.gn=gs; if(data.gn == 0) data.gn=startgoduos; data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); //gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); //gdk_color_parse("black",&color); //gtk_widget_modify_bg(data.window,GTK_STATE_NORMAL,&color); sprintf(bros,"%s %s",name_system,gettext("Список документов")); gtk_window_set_title (GTK_WINDOW (data.window),bros); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(uosspdok_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); gtk_widget_show(hbox); data.label_kolstr=gtk_label_new (gettext("Список документов")); gtk_box_pack_start (GTK_BOX (vbox2),data.label_kolstr,FALSE, FALSE, 0); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.label_poisk=gtk_label_new (""); /************ PangoFontDescription *font_pango=pango_font_description_from_string(shrift_ravnohir.ravno()); gtk_widget_modify_font(GTK_WIDGET(data.label_ost),font_pango); pango_font_description_free(font_pango); ***************/ gdk_color_parse("red",&color); gtk_widget_modify_fg(data.label_poisk,GTK_STATE_NORMAL,&color); gtk_box_pack_start (GTK_BOX (vbox2),data.label_poisk,FALSE, FALSE, 0); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),-1,200); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(bros,"F2 ?"); data.knopka[FK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Включение/выключение показа только не подтверждённых документов"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(bros,"SF2 %s",gettext("Метка")); data.knopka[SFK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK2],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK2]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[SFK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK2],data.knopka[SFK2],gettext("Снятие метки неподтверждённого документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK2]),(gpointer)SFK2); gtk_widget_show(data.knopka[SFK2]); sprintf(bros,"F3 *"); data.knopka[FK3]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK3],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK3]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[FK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK3],data.knopka[FK3],gettext("Включение/выключение показа документов без проводок"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK3]),(gpointer)FK3); gtk_widget_show(data.knopka[FK3]); sprintf(bros,"SF3 %s",gettext("Метка")); data.knopka[SFK3]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK3],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK3]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[SFK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK3],data.knopka[SFK3],gettext("Снятие метки документа без проводок"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK3]),(gpointer)SFK3); gtk_widget_show(data.knopka[SFK3]); sprintf(bros,"F4 %s",gettext("Поиск")); data.knopka[FK4]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK4],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK4]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[FK4]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK4],data.knopka[FK4],gettext("Поиск нужных записей"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK4]),(gpointer)FK4); gtk_widget_show(data.knopka[FK4]); sprintf(bros,"F5 %s",gettext("Просмотр")); data.knopka[FK5]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK5],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK5]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[FK5]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK5],data.knopka[FK5],gettext("Просмотр выбранного документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK5]),(gpointer)FK5); gtk_widget_show(data.knopka[FK5]); sprintf(bros,"F9 %s",gettext("Оплата")); data.knopka[FK9]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK9],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK9]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); tooltips[FK9]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK9],data.knopka[FK9],gettext("Переключение режимов просмотра (только оплаченыые, только не оплаченные, все)"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK9]),(gpointer)FK9); gtk_widget_show(data.knopka[FK9]); sprintf(bros,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE, 0); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(uosspdok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); uosspdok_create_list(&data); gtk_widget_show(data.window); //if(metka == 0) gtk_window_maximize(GTK_WINDOW(data.window)); //gtk_window_fullscreen(GTK_WINDOW(data.window)); gtk_main(); //printf("l_uosspdok end\n"); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); }
int main(int argc, char *argv[]){ GtkWidget *window1; GtkWidget *vbox1; GtkWidget *scrollw1; GtkWidget *canvas; GtkWidget *button; GtkWidget *surface; GtkPlotCanvasChild *child; gint page_width, page_height; gfloat scale = 1.; gint n; static gdouble *x, *y, *z; page_width = GTK_PLOT_LETTER_W * scale; page_height = GTK_PLOT_LETTER_H * scale; gtk_init(&argc,&argv); window1=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window1), "GtkPlot3D Demo"); gtk_widget_set_usize(window1,550,650); gtk_container_border_width(GTK_CONTAINER(window1),0); gtk_signal_connect (GTK_OBJECT (window1), "destroy", GTK_SIGNAL_FUNC (quit), NULL); vbox1=gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(window1),vbox1); gtk_widget_show(vbox1); scrollw1=gtk_scrolled_window_new(NULL, NULL); gtk_container_border_width(GTK_CONTAINER(scrollw1),0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollw1), GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS); gtk_box_pack_start(GTK_BOX(vbox1),scrollw1, TRUE, TRUE,0); gtk_widget_show(scrollw1); canvas = gtk_plot_canvas_new(page_width, page_height, 1.); GTK_PLOT_CANVAS_SET_FLAGS(GTK_PLOT_CANVAS(canvas), GTK_PLOT_CANVAS_DND_FLAGS); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollw1), canvas); /* gdk_color_parse("light blue", &color); gdk_color_alloc(gtk_widget_get_colormap(canvas), &color); gtk_plot_canvas_set_background(GTK_PLOT_CANVAS(canvas), &color); */ gtk_widget_show(canvas); plot3d = GTK_PLOT3D(new_layer(canvas, GTK_TYPE_PLOT3D)); child = gtk_plot_canvas_plot_new(GTK_PLOT(plot3d)); gtk_plot_canvas_put_child(GTK_PLOT_CANVAS(canvas), child, .16, .05, .65, .45); gtk_widget_show(GTK_WIDGET(plot3d)); x = (gdouble *)g_malloc(1600 * sizeof(gdouble)); y = (gdouble *)g_malloc(1600 * sizeof(gdouble)); z = (gdouble *)g_malloc(1600 * sizeof(gdouble)); n = 0; /* for(nx = 0; nx < 40; nx++) for(ny = 0; ny < 40; ny++) { x[n]=0.025*(gdouble)nx; y[n]=0.025*(gdouble)ny; z[n]=cos(((x[n]-0.5)*(x[n]-0.5) + (y[n]-0.5)*(y[n]-0.5))*24) / 4. + .5; n++; } surface = gtk_plot_csurface_new(); gtk_plot_surface_set_points(GTK_PLOT_SURFACE(surface), x, y, z, NULL, NULL, NULL, 40, 40); gtk_plot_data_set_legend(GTK_PLOT_DATA(surface), "cos ((r-r\\s0\\N)\\S2\\N)"); */ /* for(nx = 0; nx < 10; nx++) for(ny = 0; ny < 10; ny++) { x[n]=(gdouble)0.1*(gdouble)nx; y[n]=(gdouble)0.1*(gdouble)ny; z[n]=(x[n]-0.5)*(x[n]-0.5) + (y[n]-0.5)*(y[n]-0.5); z[n]=x[n]*x[n] + y[n]*y[n]; n++; } surface = gtk_plot_csurface_new(); gtk_plot_surface_set_points(GTK_PLOT_SURFACE(surface), x, y, z, NULL, NULL, NULL, 10, 10); */ gtk_plot3d_set_minor_ticks(GTK_PLOT3D(plot3d), GTK_PLOT_AXIS_X, 3); gtk_plot3d_set_minor_ticks(GTK_PLOT3D(plot3d), GTK_PLOT_AXIS_Y, 3); gtk_plot3d_minor_grids_set_visible(GTK_PLOT3D(plot3d), FALSE, FALSE, FALSE); surface = gtk_plot_csurface_new_function((GtkPlotFunc3D) function); gtk_plot_surface_set_xstep(GTK_PLOT_SURFACE(surface), .05); gtk_plot_surface_set_ystep(GTK_PLOT_SURFACE(surface), .05); gtk_plot_data_set_legend(GTK_PLOT_DATA(surface), "cos ((r-r\\s0\\N)\\S2\\N)"); gtk_plot_add_data(GTK_PLOT(plot3d), GTK_PLOT_DATA(surface)); gtk_widget_show(surface); gtk_plot_data_set_gradient(GTK_PLOT_DATA(surface), .2, .8, 6, 0); /* gtk_plot_surface_set_transparent(GTK_PLOT_SURFACE(surface), TRUE); */ gtk_plot_surface_set_transparent(GTK_PLOT_SURFACE(surface), FALSE); gtk_plot_csurface_set_projection(GTK_PLOT_CSURFACE(surface), GTK_PLOT_PROJECT_EMPTY); GTK_PLOT_CSURFACE(surface)->levels_line.line_style = GTK_PLOT_LINE_NONE; GTK_PLOT_CSURFACE(surface)->sublevels_line.line_style = GTK_PLOT_LINE_NONE; /*******************/ active_plot = new_layer(canvas, GTK_TYPE_PLOT); child = gtk_plot_canvas_plot_new(GTK_PLOT(active_plot)); gtk_plot_canvas_put_child(GTK_PLOT_CANVAS(canvas), child, .26, .54, .65, .90); gtk_plot_axis_set_minor_ticks(gtk_plot_get_axis(GTK_PLOT(active_plot), GTK_PLOT_AXIS_LEFT), 1); gtk_plot_axis_set_minor_ticks(gtk_plot_get_axis(GTK_PLOT(active_plot), GTK_PLOT_AXIS_BOTTOM), 1); surface = gtk_plot_csurface_new_function((GtkPlotFunc3D) function); gtk_plot_surface_set_xstep(GTK_PLOT_SURFACE(surface), .050); gtk_plot_surface_set_ystep(GTK_PLOT_SURFACE(surface), .050); gtk_plot_data_set_legend(GTK_PLOT_DATA(surface), "cos ((r-r\\s0\\N)\\S2\\N)"); gtk_plot_add_data(GTK_PLOT(active_plot), GTK_PLOT_DATA(surface)); gtk_widget_show(surface); gtk_plot_data_set_gradient(GTK_PLOT_DATA(surface), .2, .8, 3, 0); gtk_plot_surface_set_grid_visible(GTK_PLOT_SURFACE(surface), FALSE); gtk_plot_surface_set_transparent(GTK_PLOT_SURFACE(surface), TRUE); gtk_plot_csurface_set_projection(GTK_PLOT_CSURFACE(surface), GTK_PLOT_PROJECT_FULL); /* gtk_plot_csurface_set_lines_visible(GTK_PLOT_CSURFACE(surface), FALSE); */ button = gtk_button_new_with_label("Rotate X"); gtk_fixed_put(GTK_FIXED(canvas), button, 80, 0); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(rotate_x), canvas); button = gtk_button_new_with_label("Rotate Y"); gtk_fixed_put(GTK_FIXED(canvas), button, 160, 0); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(rotate_y), canvas); button = gtk_button_new_with_label("Rotate Z"); gtk_fixed_put(GTK_FIXED(canvas), button, 240, 0); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(rotate_z), canvas); gtk_signal_connect(GTK_OBJECT(canvas), "select_item", (GtkSignalFunc) select_item, NULL); gtk_widget_show(window1); gtk_plot_canvas_export_ps(GTK_PLOT_CANVAS(canvas), "democsurface.ps", 0, 0, GTK_PLOT_LETTER); gtk_main(); return(0); }
int l_uplgo(int metka_rr, //0-ввод и корек. 1-выбор iceb_u_str *kod,iceb_u_str *naim,GtkWidget *wpredok) { l_uplgo_data data; char bros[512]; GdkColor color; data.poisk.clear_data(); data.metka_rr=metka_rr; data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); //gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); //gdk_color_parse("black",&color); //gtk_widget_modify_bg(data.window,GTK_STATE_NORMAL,&color); sprintf(bros,"%s %s",name_system,gettext("Список групп объектов списания топлива")); gtk_window_set_title (GTK_WINDOW (data.window),bros); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(l_uplgo_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE,1); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE,1); gtk_widget_show(hbox); data.label_kolstr=gtk_label_new (gettext("Список групп объектов списания топлива")); //gdk_color_parse("green",&color); //gtk_widget_modify_fg(data.label_kolstr,GTK_STATE_NORMAL,&color); gtk_box_pack_start (GTK_BOX (vbox2),data.label_kolstr,FALSE, FALSE,1); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.label_poisk=gtk_label_new (""); gdk_color_parse("red",&color); gtk_widget_modify_fg(data.label_poisk,GTK_STATE_NORMAL,&color); gtk_box_pack_start (GTK_BOX (vbox2),data.label_poisk,FALSE, FALSE,1); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),400,300); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE,1); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE,1); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(bros,"F2 %s",gettext("Запись")); data.knopka[FK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2], TRUE, TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Ввод новой записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(bros,"%sF2 %s",RFK,gettext("Корректировать")); data.knopka[SFK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK2],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK2]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); tooltips[SFK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK2],data.knopka[SFK2],gettext("Корректировка выбранной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK2]),(gpointer)SFK2); gtk_widget_show(data.knopka[SFK2]); sprintf(bros,"F3 %s",gettext("Удалить")); data.knopka[FK3]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK3],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK3]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); tooltips[FK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK3],data.knopka[FK3],gettext("Удаление выбранной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK3]),(gpointer)FK3); gtk_widget_show(data.knopka[FK3]); sprintf(bros,"%sF3 %s",RFK,gettext("Удалить")); data.knopka[SFK3]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK3],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK3]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); tooltips[SFK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK3],data.knopka[SFK3],gettext("Удалить неиспользуемые коды групп"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK3]),(gpointer)SFK3); gtk_widget_show(data.knopka[SFK3]); sprintf(bros,"F4 %s",gettext("Поиск")); data.knopka[FK4]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK4]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK4],TRUE,TRUE,1); tooltips[FK4]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK4],data.knopka[FK4],gettext("Поиск нужных записей"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK4]),(gpointer)FK4); gtk_widget_show(data.knopka[FK4]); sprintf(bros,"F5 %s",gettext("Печать")); data.knopka[FK5]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK5],TRUE,TRUE,1); gtk_signal_connect(GTK_OBJECT(data.knopka[FK5]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); tooltips[FK5]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK5],data.knopka[FK5],gettext("Распечатка записей"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK5]),(gpointer)FK5); gtk_widget_show(data.knopka[FK5]); sprintf(bros,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE,1); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(l_uplgo_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); l_uplgo_create_list(&data); gtk_widget_show(data.window); if(metka_rr == 0) gtk_window_maximize(GTK_WINDOW(data.window)); //gtk_window_fullscreen(GTK_WINDOW(data.window)); gtk_main(); if(data.metka_voz == 0) { kod->new_plus(data.kodv.ravno()); naim->new_plus(data.naimv.ravno()); } if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); return(data.metka_voz); }
//Algoritmo T9 di predizione del testo basato su liste void gestionet9 (struttura *str) { gtk_list_clear_items ((GtkList *) str->tp.gtklist,0,N); if (str->tp.luncodicet9==-1) /*possibile solo se provenienti da un delete*/ { gtk_widget_set_usize(str->tp.scrolled_window, 0,S_W_MAIN); str->tp.luncodicet9=0; return; } //fase inizializzazione str->tp.numparoletrovate=0; int i=0; for (i=0; i<N;i++) { bzero(str->tp.vetparole[i].parola,LEN_WORD_DB+1); } //aggiornamento str->tp.luncodicet9++; str->tp.codicet9[str->tp.luncodicet9]=0; //printf("\nTasti premuti: %s\tlunghezza:%d\n",str->tp.codicet9,str->tp.luncodicet9); char query[200]; bzero (query,200); //se freq0 globale, se 1 pers sprintf (query, " select parola,codice,frequenza from globale where codice like \'%s%%\' order by codice,frequenza desc limit 0,%d;",str->tp.codicet9,N); //GtkWidget *list_item; GList *dlist=NULL; gchar *s; s = (gchar*)malloc(sizeof(gchar)); *s=0;//equals sprintf(s,""); //printf("\n%s\n",query); int retval = sqlite3_prepare_v2(str->tp.db,query,-1,&str->tp.stmt,0); if(retval) { return; } // Read the number of rows fetched int cols = sqlite3_column_count(str->tp.stmt); while(1) { // fetch a row's status retval = sqlite3_step(str->tp.stmt); if(retval == SQLITE_DONE) break; else if(retval == SQLITE_ROW) { // SQLITE_ROW means fetched a row str->tp.numparoletrovate=str->tp.numparoletrovate+1; //printf ("\n"); // sqlite3_column_text returns a const void* , typecast it to const char* for(int col=0 ; col<cols;col++) { char *val = (char *)sqlite3_column_text(str->tp.stmt,col); //printf("%s = %s\t",sqlite3_column_name(str->tp.stmt,col),val); if (col==0) { sprintf(str->tp.vetparole[str->tp.numparoletrovate-1].parola,"%s",val); str->tp.list_item=gtk_list_item_new_with_label(val); dlist=g_list_append(dlist, str->tp.list_item); gtk_widget_set_usize(str->tp.list_item,0,25); gtk_widget_show(str->tp.list_item); gtk_object_set_data(GTK_OBJECT(str->tp.list_item), list_item_data_key,s); } else strcpy(str->tp.vetparole[str->tp.numparoletrovate-1].keyparola,val); } } else { // Some error encountered return; } } str->tp.indice=0; if(str->tp.numparoletrovate> 0) gtk_list_append_items((GtkList*)(str->tp.gtklist), dlist); else{ ins(str); fButtonTP(str); } gdk_window_process_all_updates (); //printf ("\n"); }
gint delete_event (GtkWidget *widget, GdkEvent *event, GtkWidget *parent) { static GtkWidget *dialog_window = NULL; GtkWidget *label; GtkWidget *button; gint x, y; if (dialog_window == NULL) { gint flag = TRUE; dialog_window = gtk_dialog_new (); gtk_signal_connect (GTK_OBJECT (dialog_window), "delete_event", GTK_SIGNAL_FUNC (gtk_false), NULL); gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy", GTK_SIGNAL_FUNC (gtk_main_quit), NULL); gtk_window_set_title (GTK_WINDOW (dialog_window), "Exit Hello World"); gtk_container_set_border_width ( GTK_CONTAINER (dialog_window), 0); gtk_widget_set_usize (dialog_window, 250, 110); label = gtk_label_new ("真的要退出程序?"); gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog_window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); button = gtk_button_new_with_label ("确认"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (dialog_yes), &flag); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (dialog_window)); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); gtk_widget_show (button); button = gtk_button_new_with_label ("取消"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (dialog_no), &flag); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (dialog_window)); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); //设置窗口锁定状态 gtk_window_set_modal (GTK_WINDOW(dialog_window), TRUE); //设置为临时窗口状态 gtk_window_set_transient_for(GTK_WINDOW (dialog_window), GTK_WINDOW (parent)); //取得根窗口的位置 gdk_window_get_root_origin (parent->window, &x, &y); //设置对话框窗口的位置 gtk_widget_set_uposition (dialog_window, x+40, y+40); gtk_widget_show (dialog_window); gtk_main (); dialog_window = NULL; return flag; } return TRUE; }
void hybrid_about_create() { GtkWidget *window; GtkWidget *vbox; GtkWidget *notebook; GtkWidget *scroll; GtkWidget *textview; GtkWidget *tablabel; GtkWidget *action_area; GtkWidget *button; hand_cursor = gdk_cursor_new (GDK_HAND2); regular_cursor = gdk_cursor_new (GDK_XTERM); window = hybrid_create_window(_("About Hybrid"), NULL, GTK_WIN_POS_CENTER, FALSE); gtk_widget_set_size_request(window, 460, 300); vbox = gtk_vbox_new(FALSE, 5); notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_LEFT); gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 5); tablabel = gtk_label_new(_("Introduction")); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); textview = gtk_text_view_new(); create_intro(GTK_TEXT_VIEW(textview)); gtk_container_add(GTK_CONTAINER(scroll), textview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scroll, tablabel); tablabel = gtk_label_new(_("Developers")); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); textview = gtk_text_view_new(); create_contri(GTK_TEXT_VIEW(textview)); gtk_container_add(GTK_CONTAINER(scroll), textview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scroll, tablabel); tablabel = gtk_label_new(_("License")); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); textview = gtk_text_view_new(); create_gpl(GTK_TEXT_VIEW(textview)); gtk_container_add(GTK_CONTAINER(scroll), textview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scroll, tablabel); action_area = gtk_hbox_new(FALSE, 10); gtk_box_pack_start(GTK_BOX(vbox), action_area, FALSE, FALSE, 5); button = gtk_button_new_with_label(_("Close")); gtk_widget_set_usize(button, 90, 0); gtk_box_pack_end(GTK_BOX(action_area), button, FALSE, FALSE, 5); g_signal_connect(button, "clicked", G_CALLBACK(close_about), window); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show_all(window); }
int l_uosdok(const char *data_dok, //Дата документа const char *nomd, //Номер документа GtkWidget *wpredok) { class uosdok_data data; iceb_u_str string; char bros[512]; data.data_dok.new_plus(data_dok); data.nomd.plus(nomd); printf("%s\n",__FUNCTION__); /*Читаем реквизиты документа*/ l_uosdok_read_rhd(&data,wpredok); data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); //gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1); //gdk_color_parse("black",&color); //gtk_widget_modify_bg(data.window,GTK_STATE_NORMAL,&color); sprintf(bros,"%s %s",name_system,gettext("Работа с документом")); gtk_window_set_title (GTK_WINDOW (data.window),bros); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(uosdok_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); gtk_widget_show(hbox); data.label_rek_dok=gtk_label_new (data.hapka.ravno_toutf()); gtk_box_pack_start (GTK_BOX (vbox2),data.label_rek_dok,FALSE, FALSE, 0); gtk_widget_show(data.label_rek_dok); data.label_red=gtk_label_new (""); gtk_box_pack_start (GTK_BOX (vbox2),data.label_red,FALSE, FALSE, 0); GdkColor color; gdk_color_parse("red",&color); gtk_widget_modify_fg(data.label_red,GTK_STATE_NORMAL,&color); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),-1,200); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(bros,"%sF1 %s",RFK,gettext("Шапка")); data.knopka[SFK1]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK1]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK1],TRUE,TRUE, 0); tooltips[SFK1]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK1],data.knopka[SFK1],gettext("Просмотр шапки документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK1]),(gpointer)SFK1); gtk_widget_show(data.knopka[SFK1]); sprintf(bros,"F2 %s",gettext("Ввести")); data.knopka[FK2]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2],TRUE,TRUE, 0); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Ввод новой записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(bros,"%sF2 %s",RFK,gettext("Корректировать")); data.knopka[SFK2]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK2]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK2],TRUE,TRUE, 0); tooltips[SFK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK2],data.knopka[SFK2],gettext("Корректировка выбранной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK2]),(gpointer)SFK2); gtk_widget_show(data.knopka[SFK2]); sprintf(bros,"F3 %s",gettext("Удалить")); data.knopka[FK3]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK3]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK3],TRUE,TRUE, 0); tooltips[FK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK3],data.knopka[FK3],gettext("Удалить выбранную запись"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK3]),(gpointer)FK3); gtk_widget_show(data.knopka[FK3]); sprintf(bros,"%sF3 %s",RFK,gettext("Удалить")); data.knopka[SFK3]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK3]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK3],TRUE,TRUE, 0); tooltips[SFK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK3],data.knopka[SFK3],gettext("Удалить документ"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK3]),(gpointer)SFK3); gtk_widget_show(data.knopka[SFK3]); sprintf(bros,"F4 %s",gettext("Проводки")); data.knopka[FK4]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK4]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK4],TRUE,TRUE, 0); tooltips[FK4]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK4],data.knopka[FK4],gettext("Переход в режим работы с проводками для этого документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK4]),(gpointer)FK4); gtk_widget_show(data.knopka[FK4]); sprintf(bros,"F5 %s",gettext("Печать")); data.knopka[FK5]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK5],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK5]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); tooltips[FK5]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK5],data.knopka[FK5],gettext("Распечатка документов"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK5]),(gpointer)FK5); gtk_widget_show(data.knopka[FK5]); sprintf(bros,"F6 %s",gettext("Карточка")); data.knopka[FK6]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK6]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK6],TRUE,TRUE, 0); tooltips[FK6]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK6],data.knopka[FK6],gettext("Просмотр карточки инвентарного номера"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK6]),(gpointer)FK6); gtk_widget_show(data.knopka[FK6]); sprintf(bros,"F7 %s",gettext("Подтверждение")); data.knopka[FK7]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK7]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK7],TRUE,TRUE, 0); tooltips[FK7]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK7],data.knopka[FK7],gettext("Подтверждение записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK7]),(gpointer)FK7); gtk_widget_show(data.knopka[FK7]); sprintf(bros,"%sF7 %s",RFK,gettext("Подтверждение")); data.knopka[SFK7]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK7]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK7],TRUE,TRUE, 0); tooltips[SFK7]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK7],data.knopka[SFK7],gettext("Подтверждение всех записей в документе"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK7]),(gpointer)SFK7); gtk_widget_show(data.knopka[SFK7]); sprintf(bros,"F8 %s",gettext("Блокирование")); data.knopka[FK8]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK8]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK8],TRUE,TRUE, 0); tooltips[FK8]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK8],data.knopka[FK8],gettext("Устанавливать/снимать блокировку дат"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK8]),(gpointer)FK8); gtk_widget_show(data.knopka[FK8]); sprintf(bros,"F9 %s",gettext("Подтверждение")); data.knopka[FK9]=gtk_button_new_with_label(bros); gtk_signal_connect(GTK_OBJECT(data.knopka[FK9]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK9],TRUE,TRUE, 0); tooltips[FK9]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK9],data.knopka[FK9],gettext("Снять подтверждение со всего документа"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK9]),(gpointer)FK9); gtk_widget_show(data.knopka[FK9]); sprintf(bros,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE, 0); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); if(data.vido == 1) { sprintf(bros,"F11 %s",gettext("Парный док.")); data.knopka[FK11]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK11],TRUE,TRUE, 0); tooltips[FK11]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK11],data.knopka[FK11],gettext("Перейти в парный документ"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK11]), "clicked",GTK_SIGNAL_FUNC(uosdok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK11]),(gpointer)FK11); gtk_widget_show(data.knopka[FK11]); } gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); uosdok_create_list(&data); gtk_widget_show(data.window); gtk_window_maximize(GTK_WINDOW(data.window)); gtk_main(); //printf("l_uosdok end\n"); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); return(data.voz); }
int l_spisok(int metka, //0-список складов 1-список групп 2-список подразделений в услугах 3-список групп услуг 100-список единиц измерения int skl, //склад для списка групп iceb_u_str *kodv, //Возвращаемый код int podr, //подразделение для которого нужно выбрать список складов GtkWidget *wpredok) { spisok_data data; char strsql[300]; printf("l_spisok %d %d\n",metka,skl); data.metka_sp=metka; data.skl=skl; data.podr=podr; data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); gtk_window_set_default_size (GTK_WINDOW (data.window),-1,600); //gdk_color_parse("black",&color); //gtk_widget_modify_bg(data.window,GTK_STATE_NORMAL,&color); if(metka == 0) sprintf(strsql,"%s %s",name_system,gettext("Список складов")); if(metka == 1) sprintf(strsql,"%s %s",name_system,gettext("Список групп")); if(metka == 2) sprintf(strsql,"%s %s",name_system,gettext("Список подразделений")); if(metka == 3) sprintf(strsql,"%s %s",name_system,gettext("Список групп")); gtk_window_set_title (GTK_WINDOW (data.window),strsql); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(spisok_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); gtk_widget_show(hbox); data.label_kolstr=gtk_label_new (gettext("Выберите нужную запись")); //gdk_color_parse("green",&color); //gtk_widget_modify_fg(data.label_kolstr,GTK_STATE_NORMAL,&color); gtk_box_pack_start (GTK_BOX (vbox2),data.label_kolstr,FALSE, FALSE, 0); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),400,300); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (vbox2), data.sw, TRUE, TRUE, 0); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(strsql,"F2 %s",gettext("Выбор")); data.knopka[FK2]=gtk_button_new_with_label(strsql); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(spisok_knopka),&data); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Выбор отмеченной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); GtkWidget *arrow=gtk_arrow_new(GTK_ARROW_UP,GTK_SHADOW_OUT); data.knopka[FK_VVERH]=gtk_button_new(); gtk_container_add(GTK_CONTAINER(data.knopka[FK_VVERH]),arrow); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK_VVERH], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK_VVERH]), "pressed",GTK_SIGNAL_FUNC(l_spisok_knopka_vverh_press),&data); gtk_signal_connect(GTK_OBJECT(data.knopka[FK_VVERH]), "released",GTK_SIGNAL_FUNC(l_spisok_knopka_released),&data); //tooltips[FK_VVERH]=gtk_tooltips_new(); //gtk_tooltips_set_tip(tooltips[FK_VVERH],data.knopka[FK_VVERH],gettext("Выбор отмеченной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK_VVERH]),(gpointer)FK_VVERH); gtk_widget_show(data.knopka[FK_VVERH]); gtk_widget_show(arrow); arrow=gtk_arrow_new(GTK_ARROW_DOWN,GTK_SHADOW_OUT); data.knopka[FK_VNIZ]=gtk_button_new(); gtk_container_add(GTK_CONTAINER(data.knopka[FK_VNIZ]),arrow); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK_VNIZ], TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK_VNIZ]), "pressed",GTK_SIGNAL_FUNC(l_spisok_knopka_vniz_press),&data); gtk_signal_connect(GTK_OBJECT(data.knopka[FK_VNIZ]), "released",GTK_SIGNAL_FUNC(l_spisok_knopka_released),&data); //tooltips[FK_VNIZ]=gtk_tooltips_new(); //gtk_tooltips_set_tip(tooltips[FK_VNIZ],data.knopka[FK_VNIZ],gettext("Выбор отмеченной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK_VNIZ]),(gpointer)FK_VNIZ); gtk_widget_show(data.knopka[FK_VNIZ]); gtk_widget_show(arrow); sprintf(strsql,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(strsql); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE, 0); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(spisok_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); spisok_create_list (&data); //gtk_window_maximize(GTK_WINDOW(data.window)); //gtk_window_fullscreen(GTK_WINDOW(data.window)); gtk_widget_show(data.window); gtk_main(); printf("l_spisok end\n"); kodv->new_plus(data.kod.ravno()); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); return(data.voz); }
int main(int argc, gchar * argv[]) { GtkWidget *vbox, *hbox; GtkWidget *button_select, *button_exit; char buf[30]; int initial_type = 0, n, i, height, geometryflag = 0, xposition = 0, yposition = 0, width = 270; char *initial_name = NULL , *win_name; meter_t *meter; bindtextdomain("linuxcnc", EMC2_PO_DIR); setlocale(LC_MESSAGES,""); setlocale(LC_CTYPE,""); textdomain("linuxcnc"); /* process and remove any GTK specific command line args */ gtk_init(&argc, &argv); /* process my own command line args (if any) here */ small = 0; n = 1; while ( argc > n ) { if ( strcmp (argv[n], "-g") == 0 ) { /* This sets up the variables for initial position of window*/ /* The last check is for the optional width request*/ geometryflag = 1; n++; xposition = atoi(argv[n]); n++; yposition = atoi(argv[n]); n++; if ( argc > n ){ strcpy(buf,argv[n]); for (i=0; i< strlen(argv[n]); i++) { if (isdigit(buf[i]) == 0) { break; } } if (strlen(argv[n]) == i){ width = atoi(argv[n]); n++; } } } if ((argc > n) && ( strcmp (argv[n], "-s") == 0 )) { small = 1; n++; } if (argc > n) { /* check for user specified initial probe point */ if (strncmp(argv[n], "pin", 3) == 0) { /* initial probe is a pin */ initial_type = 0; } else if (strncmp(argv[n], "sig", 3) == 0) { /* initial probe is a signal */ initial_type = 1; } else if (strncmp(argv[n], "par", 3) == 0) { /* initial probe is a parameter */ initial_type = 2; } else { printf(_("ERROR: '%s' is not a valid probe type\n"), argv[n]); return -1; } n++; if ( argc > n ) { initial_name = argv[n]; n++; } else { printf(_("ERROR: no pin/signal/parameter name\n")); return -1; } } } if ((initial_name == NULL) && (small == 1)) { printf(_("ERROR: -s option requires a probe type and a pin/signal/parameter name\n")); return -1; } /* create a unique module name */ snprintf(buf, 29, "halmeter-%d", getpid()); /* connect to the HAL */ comp_id = hal_init(buf); if (comp_id < 0) { return -1; } hal_ready(comp_id); /* register an exit function to disconnect from the HAL */ g_atexit(exit_from_hal); /* capture INT (ctrl-C) and TERM signals */ signal(SIGINT, quit); signal(SIGTERM, quit); /* create main window, set it's size, and lock the size */ main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* ideally this wouldn't be fixed size in pixels */ if ( small ) { height = 22; win_name = initial_name; } else { height = 80; win_name = _("Hal Meter"); } gtk_widget_set_usize(GTK_WIDGET(main_window), width, height); gtk_window_set_policy(GTK_WINDOW(main_window), FALSE, FALSE, FALSE); /* set main window title */ gtk_window_set_title(GTK_WINDOW(main_window), win_name); /* this makes the application exit when the window is closed */ gtk_signal_connect(GTK_OBJECT(main_window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); /* a vbox to hold the displayed value and the pin/sig/param name */ vbox = gtk_vbox_new(FALSE, 3); gtk_container_set_border_width(GTK_CONTAINER(vbox), 2); /* add the vbox to the main window */ gtk_container_add(GTK_CONTAINER(main_window), vbox); gtk_widget_show(vbox); /* create a meter object */ meter = meter_new(); if (meter == NULL) { printf("null meter\n"); exit(-1); } /* set up for initial probe, if any */ if (initial_name != NULL) { meter->probe->pickname = initial_name; meter->probe->listnum = initial_type; apply_selection(NULL, meter->probe); } /* add the meter's value label to the vbox */ gtk_box_pack_start(GTK_BOX(vbox), meter->value_label, TRUE, TRUE, 0); gtk_widget_show(meter->value_label); /* add the meter's name label to the vbox */ if ( !small ) { gtk_box_pack_start(GTK_BOX(vbox), meter->name_label, TRUE, TRUE, 0); gtk_widget_show(meter->name_label); } /* arrange for periodic refresh of the value */ gtk_timeout_add(100, refresh_value, meter); /* an hbox to hold the select and exit buttons */ if ( !small ) { hbox = gtk_hbox_new_in_box(FALSE, 0, 0, vbox, FALSE, TRUE, 0); /* create the buttons and add them to the hbox */ button_select = gtk_button_new_with_label(_("_Select")); button_exit = gtk_button_new_with_label(_("E_xit")); gtk_button_set_use_underline((GtkButton *)button_select, TRUE); gtk_button_set_use_underline((GtkButton *)button_exit, TRUE); gtk_box_pack_start(GTK_BOX(hbox), button_select, TRUE, TRUE, 4); gtk_box_pack_start(GTK_BOX(hbox), button_exit, TRUE, TRUE, 4); /* make the application exit when the 'exit' button is clicked */ gtk_signal_connect(GTK_OBJECT(button_exit), "clicked", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); /* activate selection window when the 'select' button is clicked */ gtk_signal_connect(GTK_OBJECT(button_select), "clicked", GTK_SIGNAL_FUNC(popup_probe_window), meter->probe); /* save reference to select button */ meter->button_select = button_select; gtk_widget_show(button_select); gtk_widget_show(button_exit); } /* The interface is now set up so we show the window and enter the gtk_main loop. */ gtk_widget_show(main_window); /* If the -g option was invoked: set position */ if (geometryflag == 1) { gtk_window_move(GTK_WINDOW(main_window),xposition,yposition); } gtk_main(); return (0); }
void fx_proxy_initialize(FxProxy *fxproxy) { GtkBox *vbox = NULL; GtkBox *action_area = NULL; GtkWidget *hostLabel = NULL; GtkWidget *portLabel = NULL; GtkWidget *userLabel = NULL; GtkWidget *passLabel = NULL; GtkWidget *fixed = NULL; GtkWidget *okBtn = NULL; GtkWidget *cancelBtn = NULL; GdkPixbuf *pb = NULL; char text[128]; Proxy *proxy = fxproxy->fxlogin->proxy; fxproxy->dialog = gtk_dialog_new(); gtk_widget_set_usize(fxproxy->dialog , 350 , 220); gtk_window_set_resizable(GTK_WINDOW(fxproxy->dialog) , FALSE); gtk_window_set_title(GTK_WINDOW(fxproxy->dialog) , _("Set HTTP Proxy")); pb = gdk_pixbuf_new_from_file(SKIN_DIR"proxy.png" , NULL); gtk_window_set_icon(GTK_WINDOW(fxproxy->dialog) , pb); vbox = GTK_BOX(GTK_DIALOG(fxproxy->dialog)->vbox); action_area = GTK_BOX(GTK_DIALOG(fxproxy->dialog)->action_area); fixed = gtk_fixed_new(); fxproxy->enableBtn = gtk_check_button_new_with_label(_("Trun on HTTP proxy")); g_signal_connect(fxproxy->enableBtn , "toggled" , G_CALLBACK(fx_proxy_enable_toggled) , fxproxy); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->enableBtn , 20 , 20); fxproxy->errorLabel = gtk_label_new(NULL); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->errorLabel , 180 , 22); hostLabel = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(hostLabel) , _("<b>Proxy host</b>")); gtk_fixed_put(GTK_FIXED(fixed) , hostLabel , 20 , 55); portLabel = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(portLabel) , _("<b>Port</b>")); gtk_fixed_put(GTK_FIXED(fixed) , portLabel , 190 , 55); fxproxy->hostEntry = gtk_entry_new(); gtk_widget_set_usize(fxproxy->hostEntry , 140 , 25); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->hostEntry , 20 , 75); fxproxy->portEntry = gtk_entry_new(); gtk_widget_set_usize(fxproxy->portEntry , 140 , 25); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->portEntry , 190 , 75); userLabel = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(userLabel) , _("<b>Uesrname</b>")); gtk_fixed_put(GTK_FIXED(fixed) , userLabel , 20 , 110); passLabel = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(passLabel) , _("<b>Password</b>")); gtk_fixed_put(GTK_FIXED(fixed) , passLabel , 190 , 110); fxproxy->userEntry = gtk_entry_new(); gtk_widget_set_usize(fxproxy->userEntry , 140 , 25); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->userEntry , 20 , 130); fxproxy->passEntry = gtk_entry_new(); gtk_widget_set_usize(fxproxy->passEntry , 140 , 25); gtk_entry_set_visibility(GTK_ENTRY(fxproxy->passEntry) , FALSE); gtk_fixed_put(GTK_FIXED(fixed) , fxproxy->passEntry , 190 , 130); okBtn = gtk_button_new_with_label(_("OK")); g_signal_connect(okBtn , "clicked" , G_CALLBACK(fx_proxy_on_ok_clicked) , fxproxy); cancelBtn = gtk_button_new_with_label(_("Cancel")); g_signal_connect(cancelBtn , "clicked" , G_CALLBACK(fx_proxy_on_cancel_clicked) , fxproxy); gtk_box_pack_start_defaults(vbox , fixed); gtk_box_pack_start_defaults(action_area , okBtn); gtk_box_pack_start_defaults(action_area , cancelBtn); /* bind data*/ if(proxy != NULL && proxy->proxyEnabled) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fxproxy->enableBtn) , TRUE); fx_proxy_set_sensitive(fxproxy , TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fxproxy->enableBtn) , FALSE); fx_proxy_set_sensitive(fxproxy , FALSE); } if(proxy != NULL) { gtk_entry_set_text(GTK_ENTRY(fxproxy->hostEntry) , proxy->proxyHost); snprintf(text, sizeof(text) - 1 , "%d" , proxy->proxyPort); gtk_entry_set_text(GTK_ENTRY(fxproxy->portEntry) , text); gtk_entry_set_text(GTK_ENTRY(fxproxy->userEntry) , proxy->proxyUser); gtk_entry_set_text(GTK_ENTRY(fxproxy->passEntry) , proxy->proxyPass); } /* show widgets*/ gtk_widget_show_all(fxproxy->dialog); }
static gboolean dialog_select_source(int chan_num) { scope_vert_t *vert; scope_chan_t *chan; dialog_generic_t dialog; gchar *title, msg[BUFLEN]; int next, n, initial_page, row, initial_row, max_row; gchar *tab_label_text[3], *name; GtkWidget *hbox, *label, *notebk, *button; GtkAdjustment *adj; hal_pin_t *pin; hal_sig_t *sig; hal_param_t *param; vert = &(ctrl_usr->vert); chan = &(ctrl_usr->chan[chan_num - 1]); title = _("Select Channel Source"); snprintf(msg, BUFLEN - 1, _("Select a pin, signal, or parameter\n" "as the source for channel %d."), chan_num); /* create dialog window, disable resizing */ dialog.retval = 0; dialog.window = gtk_dialog_new(); dialog.app_data = &chan_num; /* set initial height of window */ gtk_widget_set_usize(GTK_WIDGET(dialog.window), -2, 300); /* allow user to grow but not shrink the window */ gtk_window_set_policy(GTK_WINDOW(dialog.window), FALSE, TRUE, FALSE); /* window should appear in center of screen */ gtk_window_set_position(GTK_WINDOW(dialog.window), GTK_WIN_POS_CENTER); /* set title */ gtk_window_set_title(GTK_WINDOW(dialog.window), title); /* display message */ label = gtk_label_new(msg); gtk_misc_set_padding(GTK_MISC(label), 15, 5); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->vbox), label, FALSE, TRUE, 0); /* a separator */ gtk_hseparator_new_in_box(GTK_DIALOG(dialog.window)->vbox, 0); /* create a notebook to hold pin, signal, and parameter lists */ notebk = gtk_notebook_new(); /* add the notebook to the dialog */ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->vbox), notebk, TRUE, TRUE, 0); /* set overall notebook parameters */ gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(notebk), TRUE); gtk_signal_connect(GTK_OBJECT(notebk), "switch-page", GTK_SIGNAL_FUNC(change_page), &dialog); /* text for tab labels */ tab_label_text[0] = _("Pins"); tab_label_text[1] = _("Signals"); tab_label_text[2] = _("Parameters"); /* loop to create three identical tabs */ for (n = 0; n < 3; n++) { /* Create a scrolled window to display the list */ vert->windows[n] = gtk_scrolled_window_new(NULL, NULL); vert->adjs[n] = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(vert->windows[n])); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vert->windows[n]), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_widget_show(vert->windows[n]); /* create a list to hold the data */ vert->lists[n] = gtk_clist_new(1); /* set up a callback for when the user selects a line */ gtk_signal_connect(GTK_OBJECT(vert->lists[n]), "select_row", GTK_SIGNAL_FUNC(selection_made), &dialog); gtk_signal_connect(GTK_OBJECT(vert->lists[n]), "key-press-event", GTK_SIGNAL_FUNC(search_for_entry), &dialog); /* It isn't necessary to shadow the border, but it looks nice :) */ gtk_clist_set_shadow_type(GTK_CLIST(vert->lists[n]), GTK_SHADOW_OUT); /* set list for single selection only */ gtk_clist_set_selection_mode(GTK_CLIST(vert->lists[n]), GTK_SELECTION_BROWSE); /* put the list into the scrolled window */ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW (vert->windows[n]), vert->lists[n]); /* another way to do it - not sure which is better gtk_container_add(GTK_CONTAINER(vert->windows[n]), vert->lists[n]); */ gtk_widget_show(vert->lists[n]); /* create a box for the tab label */ hbox = gtk_hbox_new(TRUE, 0); /* create a label for the page */ gtk_label_new_in_box(tab_label_text[n], hbox, TRUE, TRUE, 0); gtk_widget_show(hbox); /* add page to the notebook */ gtk_notebook_append_page(GTK_NOTEBOOK(notebk), vert->windows[n], hbox); /* set tab attributes */ gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebk), hbox, TRUE, TRUE, GTK_PACK_START); } /* determine initial page: pin, signal, or parameter */ if (( chan->data_source_type >= 0 ) && ( chan->data_source_type <= 2 )) { initial_page = chan->data_source_type; gtk_notebook_set_page(GTK_NOTEBOOK(notebk), initial_page); } else { initial_page = -1; gtk_notebook_set_page(GTK_NOTEBOOK(notebk), 0); } gtk_widget_show(notebk); /* populate the pin, signal, and parameter lists */ gtk_clist_clear(GTK_CLIST(vert->lists[0])); gtk_clist_clear(GTK_CLIST(vert->lists[1])); gtk_clist_clear(GTK_CLIST(vert->lists[2])); rtapi_mutex_get(&(hal_data->mutex)); next = hal_data->pin_list_ptr; initial_row = -1; max_row = -1; while (next != 0) { pin = SHMPTR(next); name = pin->name; row = gtk_clist_append(GTK_CLIST(vert->lists[0]), &name); if ( initial_page == 0 ) { if ( strcmp(name, chan->name) == 0 ) { initial_row = row; } max_row = row; } next = pin->next_ptr; } next = hal_data->sig_list_ptr; while (next != 0) { sig = SHMPTR(next); name = sig->name; row = gtk_clist_append(GTK_CLIST(vert->lists[1]), &name); if ( initial_page == 1 ) { if ( strcmp(name, chan->name) == 0 ) { initial_row = row; } max_row = row; } next = sig->next_ptr; } next = hal_data->param_list_ptr; while (next != 0) { param = SHMPTR(next); name = param->name; row = gtk_clist_append(GTK_CLIST(vert->lists[2]), &name); if ( initial_page == 2 ) { if ( strcmp(name, chan->name) == 0 ) { initial_row = row; } max_row = row; } next = param->next_ptr; } rtapi_mutex_give(&(hal_data->mutex)); if ( initial_row >= 0 ) { /* highlight the currently selected name */ gtk_clist_select_row(GTK_CLIST(vert->lists[initial_page]), initial_row, -1); /* set scrolling window to show the highlighted name */ /* FIXME - I can't seem to get this to work */ adj = vert->adjs[initial_page]; adj->value = adj->lower + (adj->upper - adj->lower)*((double)(initial_row)/(double)(max_row+1)); gtk_adjustment_value_changed(vert->adjs[initial_page]); } /* set up a callback function when the window is destroyed */ gtk_signal_connect(GTK_OBJECT(dialog.window), "destroy", GTK_SIGNAL_FUNC(dialog_generic_destroyed), &dialog); /* make Cancel button */ button = gtk_button_new_with_label(_("Cancel")); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->action_area), button, TRUE, TRUE, 4); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(dialog_generic_button2), &dialog); /* make window transient and modal */ gtk_window_set_transient_for(GTK_WINDOW(dialog.window), GTK_WINDOW(ctrl_usr->main_win)); gtk_window_set_modal(GTK_WINDOW(dialog.window), TRUE); gtk_widget_show_all(dialog.window); gtk_main(); /* we get here when the user makes a selection, hits Cancel, or closes the window */ vert->lists[0] = NULL; vert->lists[1] = NULL; vert->lists[2] = NULL; if ((dialog.retval == 0) || (dialog.retval == 2)) { /* user either closed dialog, or hit cancel */ return FALSE; } /* user made a selection */ channel_changed(); return TRUE; }