/* ================================= Filter Preview ================================= */ uint8_t DIA_filterPreview(const char *captionText, AVDMGenericVideoStream *videoStream, uint32_t frame) { ADM_assert(frame <= videoStream->getInfo()->nb_frames); GtkWidget *hbuttonbox1, *buttonOk, *scale; dialog = create_dialog1(); scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 110, 1, 10, 0))); gtk_widget_show (scale); gtk_box_pack_start (GTK_BOX(WID(vbox1)), scale, FALSE, TRUE, 0); hbuttonbox1 = gtk_hbutton_box_new (); gtk_widget_show (hbuttonbox1); gtk_box_pack_start (GTK_BOX(WID(vbox1)), hbuttonbox1, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX(hbuttonbox1), GTK_BUTTONBOX_END); buttonOk = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show(buttonOk); gtk_container_add (GTK_CONTAINER(hbuttonbox1), buttonOk); GTK_WIDGET_SET_FLAGS (buttonOk, GTK_CAN_DEFAULT); GLADE_HOOKUP_OBJECT (dialog, scale, "scale"); GLADE_HOOKUP_OBJECT(dialog, hbuttonbox1, "hbuttonbox1"); GLADE_HOOKUP_OBJECT(dialog, buttonOk, "buttonOk"); gtk_register_dialog(dialog); if (captionText) gtk_window_set_title(GTK_WINDOW(dialog), captionText); uint32_t width, height; width = videoStream->getInfo()->width; height = videoStream->getInfo()->height; gtk_signal_connect(GTK_OBJECT(WID(scale)), "value_changed", GTK_SIGNAL_FUNC(seekablePreview_frame_changed), NULL); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(seekablePreview_draw), NULL); gtk_dialog_add_action_widget(GTK_DIALOG(dialog), WID(buttonOk), GTK_RESPONSE_OK); gtk_widget_show(dialog); seekablePreview = new flySeekablePreview(width, height, videoStream, WID(drawingarea1), WID(scale)); seekablePreview->process(); seekablePreview->sliderSet(frame); seekablePreview->sliderChanged(); int response; while((response = gtk_dialog_run(GTK_DIALOG(dialog))) == GTK_RESPONSE_APPLY) { seekablePreview_draw(); } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete seekablePreview; return (response == GTK_RESPONSE_OK); }
uint8_t DIA_blendRemoval(BLEND_REMOVER_PARAM *mosaic) { GtkWidget *dialog; uint8_t ret=0; dialog=create_dialog1(); gtk_register_dialog(dialog); SPIN_SET(spinbuttonTreshold,threshold); SPIN_SET(spinbuttonNoise,noise); SPIN_SET(spinbuttonIdentical,identical); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(WID(checkbuttonShow)),mosaic->show); if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { ret=1; SPIN_GET(spinbuttonTreshold,threshold); SPIN_GET(spinbuttonNoise,noise); SPIN_GET(spinbuttonIdentical,identical); mosaic->show=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(WID(checkbuttonShow))); } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t DIA_getDecombDecimate(DECIMATE_PARAM *param) { GtkWidget *dialog; int ret=0; dialog=create_dialog1(); // Update gtk_write_entry_float(WID(entryThresh),param->threshold); gtk_write_entry_float(WID(entry2),param->threshold2); MENU_SET(optionmenu1,mode); MENU_SET(optionmenu2,quality); SPIN_SET(spinbuttonCycle,cycle); gtk_register_dialog(dialog); if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { MENU_GET(optionmenu1,mode); MENU_GET(optionmenu2,quality); SPIN_GET(spinbuttonCycle,cycle); #define RD_ENTRY(x,y) {param->y=gtk_read_entry_float(WID(x));} RD_ENTRY(entryThresh,threshold); RD_ENTRY(entry2,threshold2); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t DIA_resizeWiz(RESWIZ_FORMAT *format, RESWIZ_AR *source, RESWIZ_AR *destination) { uint8_t r=0; GtkWidget *dialog=create_dialog1(); // Initialize #define COMBINE(x,y) gtk_combo_box_set_active(GTK_COMBO_BOX(WID(x)),(int)*y) COMBINE(comboboxSource,source); COMBINE(comboboxFinal,destination); COMBINE(comboboxTarget,format); gtk_register_dialog(dialog); if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { r=1; #undef COMBINE #define COMBINE(x) gtk_combo_box_get_active(GTK_COMBO_BOX(WID(x))); *format=(RESWIZ_FORMAT) COMBINE(comboboxTarget); *source=(RESWIZ_AR) COMBINE(comboboxSource); *destination=(RESWIZ_AR)COMBINE(comboboxFinal); } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return r; }
uint8_t DIA_getMSmooth(MSMOOTH_PARAM *param) { GtkWidget *dialog; int ret=0; dialog=create_dialog1(); // Update CHECK_SET(checkbuttonHQ,highq); CHECK_SET(checkbuttonShowMask,showmask); SPIN_SET(spinbuttonThresh,threshold); SPIN_SET(spinbuttonStrength,strength); gtk_register_dialog(dialog); if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { CHECK_GET(checkbuttonHQ,highq); CHECK_GET(checkbuttonShowMask,showmask); SPIN_GET(spinbuttonThresh,threshold); SPIN_GET(spinbuttonStrength,strength); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t ADMVideoLargeMedian::configure(AVDMGenericVideoStream * instream) { UNUSED_ARG(instream); UNUSED_ARG(instream); GtkWidget *dialog; uint8_t ret=0; dialog=create_dialog1(); if(_param->luma) STOGGLE(luma); if(_param->chroma) STOGGLE(chroma); gtk_register_dialog(dialog); if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { _param->luma = GTOGGLE(luma); _param->chroma= GTOGGLE(chroma); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
DIA_progressIndexing::~DIA_progressIndexing() { ADM_assert(dialog); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); dialog=NULL; }
//************************************************************* // Short cut for filter preview // It is a modal blocking display of the datas given as arg //************************************************************* void GUI_PreviewShow(uint32_t w, uint32_t h, uint8_t *data) { if(rgb_render) { printf("\n Warning rgb render not null...\n"); delete [] rgb_render; delete [] rgb_alternate; rgb_alternate=NULL; rgb_render=NULL; } ADM_assert(rgb_render=new uint8_t [w*h*4]); ADM_assert(rgb_alternate=new uint8_t [w*h*4]); uw=w; uh=h; rgbConv.reset(w,h); dialog=create_dialog1(); gtk_register_dialog(dialog); gtk_widget_set_usize (lookup_widget(dialog,"drawingarea1"),w,h); rgbConv.scale(data,rgb_render); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(previewRender), NULL); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete [] rgb_render; delete [] rgb_alternate; rgb_alternate=NULL; rgb_render=NULL; }
uint8_t DIA_audioCodec( AUDIOENCODER *codec ) { uint8_t ret=0; AUDIOENCODER old=*codec; dialog=create_dialogAudioCodec(); // gtk_transient(dialog); gtk_register_dialog(dialog); // now set the input one for(uint32_t i=0; i<sizeof(myCodecList)/sizeof(CODECLIST); i++) if(*codec==myCodecList[i].codec) { // set gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(dialog,"optionmenu_CodecList")), i); } if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { *codec=findCodec(); ret=1; } else { *codec=old; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t DIA_getChromaShift( AVDMGenericVideoStream *in,CHROMASHIFT_PARAM *param ) { uint8_t ret=0; uint32_t width,height; // Allocate space for green-ised video width=in->getInfo()->width; height=in->getInfo()->height; dialog=create_ChromaShift(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, GTK_RESPONSE_APPLY, -1); gtk_register_dialog(dialog); gtk_window_set_title (GTK_WINDOW (dialog), QT_TR_NOOP("Chroma Shift")); gtk_widget_show(dialog); myCrop=new flyChromaShift( width, height,in,WID(drawingarea1),WID(hscale)); memcpy(&(myCrop->param),param,sizeof(CHROMASHIFT_PARAM)); myCrop->upload(); myCrop->sliderChanged(); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(gui_draw), NULL); gtk_signal_connect (GTK_OBJECT(WID( spinbutton_U)), "value_changed", GTK_SIGNAL_FUNC (gui_update), NULL); gtk_signal_connect (GTK_OBJECT(WID( spinbutton_V)), "value_changed", GTK_SIGNAL_FUNC (gui_update), NULL); gtk_signal_connect (GTK_OBJECT(WID( spinbutton_V)), "value_changed", GTK_SIGNAL_FUNC (gui_update), NULL); gtk_signal_connect (GTK_OBJECT(WID( hscale)), "value_changed", GTK_SIGNAL_FUNC (slider_update), NULL); ret=0; int response; response=gtk_dialog_run(GTK_DIALOG(dialog)); if(response==GTK_RESPONSE_OK) { myCrop->download(); memcpy(param,&(myCrop->param),sizeof(CHROMASHIFT_PARAM)); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete myCrop; return ret; }
uint8_t DIA_contrast(AVDMGenericVideoStream *in,CONTRAST_PARAM *param) { uint32_t width,height; uint8_t ret=0; // Allocate space for green-ised video width=in->getInfo()->width; height=in->getInfo()->height; dialog=create_dialog1(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, -1); gtk_register_dialog(dialog); gtk_window_set_title (GTK_WINDOW (dialog), QT_TR_NOOP("Contrast")); gtk_widget_show(dialog); // and value changed #define CNX(x,y) gtk_signal_connect(GTK_OBJECT(WID(x)), y, GTK_SIGNAL_FUNC(gui_update), (void *) (1)); CNX (checkLuma, "toggled"); CNX (checkbuttonU, "toggled"); CNX (checkbuttonV, "toggled"); CNX (hscaleContrast, "value_changed"); CNX (hscaleContrast, "drag_data_received"); CNX (hscaleBright, "value_changed"); CNX (hscaleBright, "drag_data_received"); gtk_signal_connect(GTK_OBJECT(WID(hscale1)), "value_changed",GTK_SIGNAL_FUNC(frame_changed), NULL); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(gui_draw), NULL); myCrop=new flyContrast( width, height,in,WID(drawingarea1),WID(hscale1)); memcpy(&(myCrop->param),param,sizeof(CONTRAST_PARAM)); myCrop->upload(); myCrop->sliderChanged(); ret=0; int response; response=gtk_dialog_run(GTK_DIALOG(dialog)); if(response==GTK_RESPONSE_OK) { myCrop->download(); memcpy(param,&(myCrop->param),sizeof(CONTRAST_PARAM)); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete myCrop; return ret; }
/** \fn DIA_srtPos \brief Dialog that handles subtitle size and position */ int DIA_srtPos(AVDMGenericVideoStream *in,uint32_t *size,uint32_t *position) { uint8_t ret=0; uint32_t width,height; // Allocate space for green-ised video width=in->getInfo()->width; height=in->getInfo()->height; dialog=create_dialog1(); gtk_register_dialog(dialog); gtk_window_set_title (GTK_WINDOW (dialog), QT_TR_NOOP("Subtitle Size and Position")); gtk_widget_show(dialog); myCrop=new flySrtPos( width, height,in,WID(drawingarea1),WID(hscale1)); myCrop->param.fontSize=*size; myCrop->param.position=*position; gtk_range_set_range(GTK_RANGE(WID(vscale1)),0,height-1); myCrop->upload(); myCrop->sliderChanged(); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(gui_draw), NULL); gtk_signal_connect (GTK_OBJECT(WID( spinbutton1)), "value_changed", GTK_SIGNAL_FUNC (gui_update), NULL); gtk_signal_connect (GTK_OBJECT(WID( hscale1)), "value_changed", GTK_SIGNAL_FUNC (slider_update), NULL); gtk_signal_connect (GTK_OBJECT(WID( vscale1)), "value_changed", GTK_SIGNAL_FUNC (gui_update), NULL); ret=0; int response; response=gtk_dialog_run(GTK_DIALOG(dialog)); if(response==GTK_RESPONSE_OK) { myCrop->download(); *size=myCrop->param.fontSize; *position=myCrop->param.position; ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete myCrop; return ret; }
//___________________________________________________________ uint8_t DIA_videoCodec( SelectCodecType *codec ) { #define CONFIGURE 99 uint8_t ret=0; SelectCodecType old=*codec; uint32_t nb; GtkWidget *widget[30]; const char *name[30]; GtkWidget *dialog; nb=encoderGetNbEncoder(); dialog=create_dialog1(); gtk_register_dialog(dialog); COMPRES_PARAMS *desc=videoCodecGetDescriptor (*codec); if(!desc) return 0; // now set the input one int memo=0; for(uint32_t i=0;i<nb;i++) { name[i]=encoderGetIndexedName(i); gtk_combo_box_append_text (GTK_COMBO_BOX (WID(combobox1)),name[i]); if(videoCodecGetDescriptorByIndex (i)==desc) memo=i; } gtk_combo_box_set_active(GTK_COMBO_BOX (WID(combobox1)),memo); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), WID(buttonConf),CONFIGURE); int running=1; while(running) switch(gtk_dialog_run(GTK_DIALOG(dialog))) { case GTK_RESPONSE_OK: { ret=1; int s=gtk_combo_box_get_active(GTK_COMBO_BOX (WID(combobox1))); COMPRES_PARAMS *nw=videoCodecGetDescriptorByIndex (s); *codec=nw->codec; running=0; break; } case CONFIGURE: { int s=gtk_combo_box_get_active(GTK_COMBO_BOX (WID(combobox1))); COMPRES_PARAMS *nw=videoCodecGetDescriptorByIndex (s); if(nw->configure) nw->configure(nw); break; } default: running=0; break; } gtk_widget_destroy(dialog); gtk_unregister_dialog(dialog); return ret; }
/** * \fn DIA_getEQ2Param * \brief flyDialogGtk handling the mplayer EQ2 user Interface dialog. */ uint8_t DIA_getEQ2Param(Eq2_Param *param, AVDMGenericVideoStream *in) { uint8_t r=0; uint32_t w,h; // Allocate space for green-ised video w=in->getInfo()->width; h=in->getInfo()->height; dialog=create_dialog1(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, -1); gtk_register_dialog(dialog); gtk_widget_show(dialog); myCrop=new flyEq2( w, h,in,WID(drawingarea1),WID(hscale1)); memcpy(&(myCrop->param),param,sizeof(Eq2_Param)); myCrop->upload(); myCrop->sliderChanged(); myCrop->update(); int ret=0; int response; //----------------------- #define HCONECT(x) gtk_signal_connect(GTK_OBJECT(WID(hscale##x)), "value_changed",GTK_SIGNAL_FUNC(eq2_changed), NULL); HCONECT(Brightness); HCONECT(Saturation); HCONECT(Contrast); HCONECT(Gamma); HCONECT(GammaWeight); HCONECT(GammaR); HCONECT(GammaG); HCONECT(GammaB); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(draw), NULL); gtk_signal_connect(GTK_OBJECT(WID(hscale1)), "value_changed",GTK_SIGNAL_FUNC(frame_changed), NULL); //----------------------- response=gtk_dialog_run(GTK_DIALOG(dialog)); if(response==GTK_RESPONSE_OK) { myCrop->download(); memcpy(param,&(myCrop->param),sizeof(Eq2_Param)); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete myCrop; myCrop=NULL; return ret; }
DIA_encoding::~DIA_encoding( ) { if(tray) delete tray; tray=NULL; ADM_assert(dialog); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); dialog=NULL; UI_deiconify(); }
uint8_t DIA_about( void ) { GtkWidget *dialog; dialog=create_aboutdialog1(); gtk_register_dialog(dialog); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return 1; }
uint8_t ADM_ocrUiEnd(void *d) { GtkWidget *dialog=(GtkWidget *)d; ADM_assert(dialog); // Final round gtk_widget_set_sensitive(WID(frameBitmap),0); // gtk_widget_set_sensitive(WID(Current_Glyph),0); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); }
uint8_t DIA_getPartial(PARTIAL_CONFIG *param,AVDMGenericVideoStream *son,AVDMGenericVideoStream *previous) { GtkWidget *dialog; int ret=0,done=0; dialog=create_dialog1(); // Update SPIN_SET(spinbuttonStart,_start); SPIN_SET(spinbuttonSize,_end); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), WID(buttonConf), F_CONF); // Run gtk_register_dialog(dialog); while(!done) { switch(gtk_dialog_run(GTK_DIALOG(dialog))) { case F_CONF: printf("Poof\n"); son->configure(previous); break; case GTK_RESPONSE_OK: { uint32_t s,e; s=SGET(spinbuttonStart); e=SGET(spinbuttonSize); if(e<s) { GUI_Error_HIG("Bad parameters","The end frame must be after the start frame !"); } else { param->_start=s; param->_end=e; done=1; ret=1; } } break; default: done=1; break; } } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t DIA_about( void ) { admGlade glade; glade.init(); if (!glade.loadFile("about.gtkBuilder")) return 0; GtkWidget *dialog = glade.getWidget("aboutdialog"); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG (dialog), VERSION); gtk_register_dialog(dialog); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return 1; }
void DIA_StopBusyDialog( void ) { if(busy) { gtk_unregister_dialog(busy); gtk_widget_destroy(busy); busy=NULL; } else { printf("\n Busy was null ???\n"); } }
// // Video is in YV12 Colorspace // // uint8_t DIA_getASharp(ASHARP_PARAM *param, AVDMGenericVideoStream *in) { uint32_t width,height; uint8_t ret=0; // Allocate space for green-ised video width=in->getInfo()->width; height=in->getInfo()->height; dialog=create_dialog1(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, -1); gtk_register_dialog(dialog); gtk_window_set_title (GTK_WINDOW (dialog), QT_TR_NOOP("ASHARP")); gtk_widget_show(dialog); gtk_signal_connect(GTK_OBJECT(WID(drawingarea1)), "expose_event", GTK_SIGNAL_FUNC(draw), NULL); // gtk_signal_connect(GTK_OBJECT(WID(hscale1)), "value_changed",GTK_SIGNAL_FUNC(frame_changed), NULL); gtk_signal_connect(GTK_OBJECT(WID(spinbuttonT)), "value_changed",GTK_SIGNAL_FUNC(hue_changed), NULL); gtk_signal_connect(GTK_OBJECT(WID(spinbuttonD)), "value_changed",GTK_SIGNAL_FUNC(hue_changed), NULL); gtk_signal_connect(GTK_OBJECT(WID(spinbuttonB)), "value_changed",GTK_SIGNAL_FUNC(hue_changed), NULL); gtk_widget_show(dialog); myCrop=new flyASharp( width, height,in,WID(drawingarea1),WID(hscale1)); memcpy(&(myCrop->param),param,sizeof(ASHARP_PARAM)); myCrop->upload(); myCrop->sliderChanged(); ret=0; int response; response=gtk_dialog_run(GTK_DIALOG(dialog)); if(response==GTK_RESPONSE_OK) { myCrop->download(); memcpy(param,&(myCrop->param),sizeof(ASHARP_PARAM)); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); delete myCrop; return ret; }
//************************************ void DIA_Calculator(uint32_t *sizeInMeg, uint32_t *avgBitrate ) { if(!avifileinfo) return ; glade.init(); if (!glade.loadFile("calculator.gtkBuilder")) { GUI_Error_HIG(QT_TR_NOOP("Cannot load dialog"), QT_TR_NOOP("File \"calculator.gtkBuilder\" could not be loaded.")); return; } GtkWidget *dialog = GW(dialogCalculator); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL, GTK_RESPONSE_APPLY, -1); gtk_register_dialog(dialog); g_signal_connect(GW(comboboxFormat), "changed", G_CALLBACK(cb_mod), (void *) 0); g_signal_connect(GW(comboboxMedium), "changed", G_CALLBACK(cb_mod2), (void *) 0); prepare(); update(); gtk_widget_set_sensitive(GW(spinbuttonCustom),0); while(1) { if(GTK_RESPONSE_APPLY==gtk_dialog_run(GTK_DIALOG(dialog))) { update(); videoCodecSetFinalSize(videoSize); } else { break; } } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); *sizeInMeg=videoSize; *avgBitrate=videoBitrate; }
// Open the main filter dialog and call the handlers // if needed. int GUI_handleVFilter (void) { getLastVideoFilter (); // expand video to full size // sanity check if (nb_active_filter == 0) { nb_active_filter = 1; videofilters[0].filter = new AVDMVideoStreamNull (video_body, frameStart, frameEnd - frameStart); } dialog = createFilterDialog(); GdkWMDecoration decorations=(GdkWMDecoration)0; gtk_widget_realize(dialog); gdk_window_set_decorations(dialog->window, (GdkWMDecoration)(GDK_DECOR_ALL | GDK_DECOR_MINIMIZE)); GdkScreen* screen = gdk_screen_get_default(); gint width = gdk_screen_get_width(screen); if(width>=1024) gtk_window_set_default_size(GTK_WINDOW(dialog), 900, 600); updateFilterList (); gtk_register_dialog (dialog); //gtk_widget_show (dialog); int r; while(1) { r=gtk_dialog_run(GTK_DIALOG(dialog)); if(r>A_BEGIN && r<A_END) { on_action((gui_act)r); } else break; }; gtk_unregister_dialog (dialog); gtk_widget_destroy(dialog); dialog=NULL; return 1; }
DIA_encoding::~DIA_encoding( ) { bool shutdownRequired = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(WID(checkbutton_shutdown))); setpriority(PRIO_PROCESS, 0, _originalPriority); if(tray) delete tray; tray=NULL; ADM_assert(dialog); gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); dialog=NULL; UI_deiconify(); if (shutdownRequired && !stopReq) { DIA_working *work=new DIA_working(QT_TR_NOOP("Shutting down")); bool performShutdown=true; for(int i = 0; i <= 30; i++) { if (work->isAlive()) { GUI_Sleep(1000); work->update(i, 30); } else { performShutdown=false; break; } } if (performShutdown && shutdown()) { GUI_Sleep(5000); } delete work; } }
uint8_t DIA_4entries(char *title,uint32_t *left,uint32_t *right,uint32_t *top,uint32_t *bottom) { GtkWidget *dialog; char str[100]; uint8_t ret=0; gint r; #define FILL_ENTRY(widget_name,value) {sprintf(str,"%ld",*value);r=-1; \ gtk_editable_delete_text(GTK_EDITABLE(lookup_widget(dialog,#widget_name)), 0,-1);\ gtk_editable_insert_text(GTK_EDITABLE(lookup_widget(dialog,#widget_name)), str, strlen(str), &r);} dialog=create_dialog1(); // gtk_transient(dialog); gtk_register_dialog(dialog); gtk_window_set_title (GTK_WINDOW (dialog), title); FILL_ENTRY(entryLeft,left); FILL_ENTRY(entryRight,right); FILL_ENTRY(entryTop,top); FILL_ENTRY(entryBottom,bottom); ret=0; if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK) { *left=gtk_read_entry(WID(entryLeft)); *right=gtk_read_entry(WID(entryRight)); *top=gtk_read_entry(WID(entryTop)); *bottom=gtk_read_entry(WID(entryBottom)); ret=1; } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
//************************************ void DIA_Calculator(uint32_t *sizeInMeg, uint32_t *avgBitrate ) { if(!avifileinfo) return ; dialog=create_Calculator(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL, GTK_RESPONSE_APPLY, -1); gtk_register_dialog(dialog); gtk_signal_connect(GTK_OBJECT(WID(optionmenu1)), "changed", GTK_SIGNAL_FUNC(cb_mod), (void *) 0); gtk_signal_connect(GTK_OBJECT(WID(optionmenu2)), "changed", GTK_SIGNAL_FUNC(cb_mod2), (void *) 0); prepare(); update(); gtk_widget_set_sensitive(WID(entryCustom),0); while(1) { if(GTK_RESPONSE_APPLY==gtk_dialog_run(GTK_DIALOG(dialog))) { update(); videoCodecSetFinalSize(videoSize); } else { break; } } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); *sizeInMeg=videoSize; *avgBitrate=videoBitrate; }
uint8_t DIA_tdeint(TDEINT_PARAM *param) { uint8_t ret=0; GtkWidget *dialog; dialog=create_dialog1(); gtk_register_dialog(dialog); upload(dialog,param); switch(gtk_dialog_run(GTK_DIALOG(dialog))) { case GTK_RESPONSE_OK: { download(dialog,param); ret=1; } } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
/*----------------------------------------------*/ uint8_t DIA_resize(uint32_t *width,uint32_t *height,uint32_t *alg,uint32_t originalw, uint32_t originalh,uint32_t fps1000) { char str[100]; uint8_t ret=0; if(fps1000>24600 && fps1000<25400) { aprintf("Pal\n"); pal=1; } else { aprintf("NTSC\n"); pal=0; } ow=originalw; oh=originalh; iw=*width; ih=*height; dialog=create_dialog1(); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, GTK_RESPONSE_APPLY, -1); //gtk_transient(dialog); gtk_register_dialog(dialog); erx=ery=0; double val; val=100.*iw; if(ow) val=val/ow; adj_angle= gtk_range_get_adjustment (GTK_RANGE(WID(hscale1))); gtk_adjustment_set_value( GTK_ADJUSTMENT(adj_angle),( gdouble ) val ); // remember algo gtk_option_menu_set_history (GTK_OPTION_MENU (WID(optionmenu1)), *alg); #define CONNECT(w,x) gtk_signal_connect(GTK_OBJECT(lookup_widget(dialog,#w)), #x, \ GTK_SIGNAL_FUNC(drag), NULL) CONNECT(hscale1,drag_data_received); CONNECT(hscale1,drag_motion); CONNECT(hscale1,drag_data_get); CONNECT(hscale1,drag_begin); gtk_signal_connect(GTK_OBJECT(adj_angle),"value_changed", GTK_SIGNAL_FUNC(drag), NULL); write(); ret=0; uint8_t stop=0; while(!stop) { switch(gtk_dialog_run(GTK_DIALOG(dialog))) { case GTK_RESPONSE_OK: gchar *s; SPIN_GET(spinbutton_width,*width); SPIN_GET(spinbutton_height,*height); *alg= getRangeInMenu(lookup_widget(dialog,"optionmenu1")); ret=1; stop=1; break; default: case GTK_RESPONSE_CANCEL: stop=1; break; case GTK_RESPONSE_APPLY: drag(NULL,NULL); break; } } gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
uint8_t diaFactoryRun(const char *title,uint32_t nb,diaElem **elems) { uint8_t ret=0; ADM_assert(elems); ADM_assert(nb); ADM_assert(title); /* First there was a dialog ...*/ GtkWidget *dialog=gtk_dialog_new (); GtkWidget *dialog_vbox1; GtkWidget *table1; GtkWidget *vbox1; gtk_window_set_title (GTK_WINDOW (dialog),title ); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); dialog_vbox1 = GTK_DIALOG (dialog)->vbox; gtk_box_set_spacing (GTK_BOX(dialog_vbox1), 12); gtk_widget_show (dialog_vbox1); vbox1 = gtk_vbox_new (0, 18); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 6); gtk_container_add (GTK_CONTAINER (dialog_vbox1), vbox1); gtk_widget_show (vbox1); int line=0; int i=0; while (i<nb) { if (elems[i]->mySelf == ELEM_FRAME) { addLine(elems[i],dialog,vbox1,line); i++; } else { line = 0; int nbLine=0; while (i+nbLine<nb && elems[i+nbLine]->mySelf != ELEM_FRAME) nbLine++; table1 = gtk_table_new (nbLine, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table1), 12); gtk_table_set_row_spacings (GTK_TABLE (table1), 6); gtk_box_pack_start (GTK_BOX(vbox1), table1, FALSE, FALSE, 0); gtk_widget_show (table1); while (i<nb && elems[i]->mySelf != ELEM_FRAME) { addLine(elems[i],dialog,table1,line); line+=elems[i]->getSize(); i++; } } } // Add a Close button GtkWidget *okbutton1; GtkWidget *cancelbutton1; cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), cancelbutton1, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT); okbutton1 = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), okbutton1, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT); /* Finalize them */ for(int i=0;i<nb;i++) { elems[i]->finalize(); } // Show it & run gtk_register_dialog(dialog); if(GTK_RESPONSE_OK==gtk_dialog_run(GTK_DIALOG(dialog))) { for(int i=0;i<nb;i++) { getLine(elems[i],dialog,table1,i); } ret=1; } // Cleanup gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }
/** \fn diaFactoryRun \brief Same as above but for tabbed dialog */ uint8_t diaFactoryRunTabs(const char *title,uint32_t nb,diaElemTabs **tabs) { uint8_t ret=0; ADM_assert(tabs); ADM_assert(nb); ADM_assert(title); /* First there was a dialog ...*/ GtkWidget *dialog=gtk_dialog_new (); GtkWidget *dialog_vbox1; GtkWidget *table1; GtkWidget *notebook1; gtk_window_set_title (GTK_WINDOW (dialog),title ); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); dialog_vbox1 = GTK_DIALOG (dialog)->vbox; gtk_box_set_spacing (GTK_BOX(dialog_vbox1), 12); gtk_widget_show (dialog_vbox1); // Ok create our tabs notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (dialog_vbox1), notebook1, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (notebook1), 6); // And fill them for(int i=0;i<nb;i++) { buildOneTab(notebook1,i,tabs[i]); } diaElemTabs *itab; for(int i=0;i<nb;i++) { itab=(tabs[i]); for(int j=0;j<itab->nbElems;j++) { itab->dias[j]->finalize(); } } // Add a Close button GtkWidget *okbutton1; GtkWidget *cancelbutton1; cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), cancelbutton1, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT); okbutton1 = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), okbutton1, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT); // Show it & run gtk_register_dialog(dialog); if(GTK_RESPONSE_OK==gtk_dialog_run(GTK_DIALOG(dialog))) { for(int i=0;i<nb;i++) { readOneTab(i,tabs[i]); } ret=1; } // Cleanup gtk_unregister_dialog(dialog); gtk_widget_destroy(dialog); return ret; }