void Icon::update_icon() { if(icon_im) delete icon_im; Fl_String path(PREFIX"/share/ede/icons/48x48/"); path += icon_file; if(!fl_file_exists(path)) path = icon_file; if(fl_file_exists(path)) { icon_im = Fl_Image::read(path, 0); } else { icon_im = 0; } if(!icon_im) { icon_im = Fl_Image::read(PREFIX"/share/ede/icons/48x48/folder.png", 0); } if(icon_im) { if(icon_im->width()!=48 || icon_im->height()!=48) { Fl_Image *old = icon_im; icon_im = old->scale(48,48); delete old; } icon_im->mask_type(MASK_ALPHA); icon_im->threshold(128); } }
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(); }
void desktop_properties(Fl_Widget *, void *arg) { if(!shown) { make_desktop_properties(); shown = true; } mode = desktop->bg_mode; color = desktop->bg_color; opacity = desktop->bg_opacity; use = desktop->bg_use; filename = desktop->bg_filename; if(bg_prop_window->visible()) { bg_prop_window->show(); return; } if(mini_image) { delete mini_image; mini_image=0; } if(mini_wpaper){ delete mini_wpaper; mini_wpaper=0;} color_button->selection_color(color); mini_image_box->color(color); opacity_slider->value(opacity); mode_choice->value(mode); use_button->value(use); image_input->value(filename); if(!desktop->bg_filename.empty()) { Fl_Image *im = Fl_Image::read(desktop->bg_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); if(use) bg_image_group->activate(); else { bg_image_group->deactivate(); mini_image_box->image(0); } bg_prop_window->show(); }
void bg_image_browse(Fl_Button *w, void *d) { changed=true; fc_initial_preview = true; const char *f=fl_select_file(image_input->value(), _("All Files, *," "Png Images, *.png," "Xpm Images, *.xpm," "Jpeg Images, *.{jpg|jpeg}," "Gif Images, *.gif," "Bmp Images, *.bmp"), _("Choose wallpaper:") ); if(f) { if(mini_wpaper) { delete mini_wpaper; mini_wpaper=0; } if(mini_image) { delete mini_image; mini_image=0; } filename = f; Fl_Image *im = Fl_Image::read(f); 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(); delete []f; } }