Ewl_Widget * widget_new( char *name ) { Ewler_Widget *w; if( !name ) return NULL; w = spec_new( name ); if( !w || !w->w ) return NULL; w->selected = false; ewl_callback_append(w->w, EWL_CALLBACK_REALIZE, realize, w); ewl_callback_append(w->w, EWL_CALLBACK_CONFIGURE, configure, w); ewl_widget_show(w->w); w->bg = ewl_vbox_new(); w->bg->data = ecore_hash_new(ecore_str_hash, ecore_str_compare); ewl_widget_appearance_set(w->bg, "select_bg"); ewl_theme_data_str_set(w->bg, "/select_bg/file", EWLER_EET); ewl_theme_data_str_set(w->bg, "/select_bg/group", "select_bg"); ewl_object_fill_policy_set(EWL_OBJECT(w->bg), EWL_FLAG_FILL_NONE); ewl_widget_data_set(w->bg, "EWLER_WIDGET", w); ewl_container_child_append(EWL_CONTAINER(w->bg), w->w); ewl_widget_show(w->bg); w->fg = ewl_vbox_new(); w->fg->data = ecore_hash_new(ecore_str_hash, ecore_str_compare); ewl_widget_appearance_set(w->fg, "select_fg"); ewl_theme_data_str_set(w->fg, "/select_fg/file", EWLER_EET); ewl_theme_data_str_set(w->fg, "/select_fg/group", "select_fg"); ewl_callback_append(w->fg, EWL_CALLBACK_CONFIGURE, fg_configure, w); ewl_callback_append(w->fg, EWL_CALLBACK_REALIZE, fg_realize, w); ewl_callback_append(w->fg, EWL_CALLBACK_FOCUS_IN, fg_mouse_in, w); ewl_callback_append(w->fg, EWL_CALLBACK_FOCUS_OUT, fg_mouse_out, w); ewl_callback_append(w->fg, EWL_CALLBACK_MOUSE_DOWN, fg_mouse_down, w); ewl_callback_append(w->fg, EWL_CALLBACK_MOUSE_UP, fg_mouse_up, w); ewl_callback_append(w->fg, EWL_CALLBACK_MOUSE_MOVE, fg_mouse_move, w); ewl_callback_append(w->fg, EWL_CALLBACK_DESTROY, widget_destroy, w); ewl_object_fill_policy_set(EWL_OBJECT(w->fg), EWL_FLAG_FILL_NONE); ewl_widget_data_set(w->fg, "EWLER_WIDGET", w); ewl_container_child_append(EWL_CONTAINER(w->fg), w->bg); ewl_widget_show(w->fg); w->selectable = true; w->configured = false; return w->fg; }
int main ( int argc, char ** argv ) { Ewl_Widget *vbox=NULL; Ewl_Widget *statbar=NULL; char *homedir; char *configfile; if(argc<2) return 1; if ( !ewl_init ( &argc, argv ) ) { return 1; } //setlocale(LC_ALL, ""); //textdomain("elementpdf"); ewl_theme_theme_set(get_theme_file()); homedir=getenv("HOME"); configfile=(char *)calloc(strlen(homedir)+21 + 1, sizeof(char)); strcat(configfile,homedir); strcat(configfile,"/.madpdf"); if(!file_exists(configfile)) { mkdir (configfile,S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); } strcat(configfile,"/settings.xml"); load_settings(configfile); win = ewl_window_new(); ewl_window_title_set ( EWL_WINDOW ( win ), "EWL_WINDOW" ); ewl_window_name_set ( EWL_WINDOW ( win ), "EWL_WINDOW" ); ewl_window_class_set ( EWL_WINDOW ( win ), "EWLWindow" ); ewl_object_size_request ( EWL_OBJECT ( win ), 600, 800 ); ewl_callback_append ( win, EWL_CALLBACK_DELETE_WINDOW, destroy_cb, NULL ); ewl_callback_append(win, EWL_CALLBACK_KEY_DOWN, cb_key_down, NULL); ewl_widget_name_set(win,"mainwindow"); ewl_widget_show ( win ); vbox=ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(win),vbox); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_FILL); ewl_widget_show(vbox); scrollpane=ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(vbox),scrollpane); ewl_callback_append(scrollpane,EWL_CALLBACK_REVEAL,cb_scrollpane_revealed,NULL); ewl_scrollpane_hscrollbar_flag_set(EWL_SCROLLPANE(scrollpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); ewl_scrollpane_vscrollbar_flag_set(EWL_SCROLLPANE(scrollpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); //ewl_object_fill_policy_set(EWL_OBJECT(scrollpane), EWL_FLAG_FILL_FILL); //ewl_theme_data_str_set(EWL_WIDGET(scrollpane),"/scrollpane/group","ewl/blank"); ewl_widget_show(scrollpane); trimpane=ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(scrollpane),trimpane); ewl_object_alignment_set(EWL_OBJECT(trimpane),EWL_FLAG_ALIGN_LEFT|EWL_FLAG_ALIGN_TOP); ewl_scrollpane_hscrollbar_flag_set(EWL_SCROLLPANE(trimpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); ewl_scrollpane_vscrollbar_flag_set(EWL_SCROLLPANE(trimpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); //ewl_theme_data_str_set(EWL_WIDGET(trimpane),"/scrollpane/group","ewl/blank"); ewl_widget_show(trimpane); statbar=ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(vbox),statbar); ewl_theme_data_str_set(EWL_WIDGET(statbar),"/hbox/group","ewl/menu/oi_menu"); ewl_object_fill_policy_set(EWL_OBJECT(statbar),EWL_FLAG_FILL_HFILL|EWL_FLAG_FILL_VSHRINKABLE); ewl_widget_show(statbar); statlabel1=ewl_label_new(); //ewl_statusbar_left_append(EWL_STATUSBAR(statbar),statlabel1); ewl_container_child_append(EWL_CONTAINER(statbar),statlabel1); ewl_theme_data_str_set(EWL_WIDGET(statlabel1),"/label/group","ewl/oi_statbar_label_left"); ewl_theme_data_str_set(EWL_WIDGET(statlabel1),"/label/textpart","ewl/oi_statbar_label_left/text"); ewl_object_fill_policy_set(EWL_OBJECT(statlabel1),EWL_FLAG_FILL_HSHRINKABLE); ewl_widget_show(statlabel1); statlabel2=ewl_label_new(); //ewl_statusbar_right_append(EWL_STATUSBAR(statbar),statlabel2); ewl_container_child_append(EWL_CONTAINER(statbar),statlabel2); ewl_theme_data_str_set(EWL_WIDGET(statlabel2),"/label/group","ewl/oi_statbar_label_right"); ewl_theme_data_str_set(EWL_WIDGET(statlabel2),"/label/textpart","ewl/oi_statbar_label_right/text"); ewl_object_fill_policy_set(EWL_OBJECT(statlabel2),EWL_FLAG_FILL_HFILL); ewl_widget_show(statlabel2); pdfwidget = ewl_pdf_new(); ewl_pdf_file_set (EWL_PDF (pdfwidget), argv[1]); ewl_container_child_append(EWL_CONTAINER(trimpane),pdfwidget); ewl_object_alignment_set(EWL_OBJECT(pdfwidget),EWL_FLAG_ALIGN_LEFT|EWL_FLAG_ALIGN_TOP); ewl_widget_name_set(pdfwidget,"pdfwidget"); ewl_callback_append (pdfwidget, EWL_CALLBACK_CONFIGURE, cb_pdfwidget_resized, NULL ); ewl_widget_show (pdfwidget); //set up menu menu=ewl_context_menu_new(); ewl_callback_append(menu, EWL_CALLBACK_KEY_DOWN, cb_menu_key_down, NULL); ewl_theme_data_str_set(EWL_WIDGET(menu),"/menu/group","ewl/menu/oi_menu"); ewl_context_menu_attach(EWL_CONTEXT_MENU(menu), statbar); Ewl_Widget *temp=ewl_menu_new(); ewl_container_child_append(EWL_CONTAINER(menu),temp); ewl_widget_name_set(temp,"menuitem1"); ewl_button_label_set(EWL_BUTTON(temp),"1. Go to page..."); ewl_widget_show(temp); goto_entry=ewl_entry_new(); ewl_container_child_append(EWL_CONTAINER(temp),goto_entry); ewl_object_custom_w_set(EWL_OBJECT(goto_entry),50); ewl_callback_append(goto_entry, EWL_CALLBACK_KEY_DOWN, cb_goto_key_down, NULL); ewl_widget_show(goto_entry); temp=ewl_menu_item_new(); ewl_widget_name_set(temp,"menuitem2"); ewl_container_child_append(EWL_CONTAINER(menu),temp); ewl_button_label_set(EWL_BUTTON(temp),"2. Preferences..."); ewl_widget_show(temp); ewl_main(); save_settings(configfile); free(configfile); free_settings(); return 0; }