void bg_image_input(Fl_Input *w, void *d) { changed=true; Fl_String val(w->value()); filename = fl_file_expand(val); if(mini_wpaper) { delete mini_wpaper; mini_wpaper=0; } if(mini_image) { delete mini_image; mini_image=0; } Fl_Image *im = Fl_Image::read(filename); if(im) { im->system_convert(); float scalew = (float)mini_image_box->w()/(float)desktop->w(); float scaleh = (float)mini_image_box->h()/(float)desktop->h(); mini_image = im->scale(int(im->width()*scalew), int(im->height()*scaleh)); delete im; } if(mini_image) { mini_wpaper = make_image(color, mini_image, mini_image_box->w(), mini_image_box->h(), mode, opacity); mini_image_box->image(mini_wpaper); } else { mini_image_box->image(0); } image_input->value(filename); image_input->redraw(); mini_image_box->redraw(); }
Fl_String MainMenu::get_item_dir(Fl_XmlNode *node) { Fl_String dir( node->get_attribute("Dir") ); if(dir=="$DEFAULT_PROGRAMS_DIR") dir = Fl_String(PREFIX"/share/ede/programs"); return fl_file_expand(dir); }
Fl_Image *MainMenu::find_image(const Fl_String &icon) const { Fl_String iconpath( fl_file_expand(icon) ); Fl_Image *im=0; if(fl_file_exists(iconpath)) im = Fl_Image::read(iconpath); if(!im) { iconpath = PREFIX"/share/ede/icons/16x16/"+icon; im = Fl_Image::read(iconpath); } if(im && (im->width()!=16 || im->height()!=16)) { Fl_Image *scaled = im->scale(16, 16); if(scaled) { delete im; im = scaled; } } return im; }