X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fabout.cpp;h=73091f01fc4879e494908e0e6459f0b2376002f0;hb=c25902b514d64fd65c96ed56171bcd205d19d699;hp=eba53e6885edc78d2655ae981b5c0a4074e2aa2d;hpb=0c2b7e48750351e8f3d39885dd1e2c2b73551523;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/about.cpp b/synfig-studio/trunk/src/gtkmm/about.cpp index eba53e6..73091f0 100644 --- a/synfig-studio/trunk/src/gtkmm/about.cpp +++ b/synfig-studio/trunk/src/gtkmm/about.cpp @@ -1,8 +1,10 @@ -/*! ======================================================================== -** Synfig -** Template File -** $Id: about.cpp,v 1.2 2005/01/13 21:11:16 darco Exp $ +/* === S Y N F I G ========================================================= */ +/*! \file about.cpp +** \brief writeme ** +** $Id$ +** +** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** ** This package is free software; you can redistribute it and/or @@ -14,6 +16,7 @@ ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** General Public License for more details. +** \endlegal ** ** === N O T E S =========================================================== ** @@ -84,11 +87,11 @@ extern const guint gtk_interface_age; class studio::AboutProgress : public synfig::ProgressCallback { About &about; - + public: AboutProgress(About &about):about(about) { } - + virtual bool task(const std::string &task) { if(about.tasklabel) @@ -170,19 +173,19 @@ About::About(): if(synfig_root) { imagepath=synfig_root; imagepath+=ETL_DIRECTORY_SEPERATOR; - + imagepath+="share/pixmaps"; } imagepath+=ETL_DIRECTORY_SEPERATOR; - - + + // Create the Logo Gtk::Image *Logo = manage(new class Gtk::Image()); Logo->set(imagepath+"about_dialog."IMAGE_EXT); Logo->set_size_request(image_w,image_h); Logo->set_alignment(0.5,0.5); Logo->set_padding(0,0); - + // Create the Copyright Label Gtk::Label *CopyrightLabel = manage(new class Gtk::Label(SYNFIG_COPYRIGHT)); CopyrightLabel->set_size_request(image_w,24); @@ -190,6 +193,26 @@ About::About(): CopyrightLabel->set_padding(0,0); CopyrightLabel->set_justify(Gtk::JUSTIFY_CENTER); CopyrightLabel->set_line_wrap(false); + CopyrightLabel->modify_fg(Gtk::STATE_NORMAL,Gdk::Color("black")); + + /* Scale the text to fit */ + int width = 0; + int height = 0; + float size=11; + Glib::RefPtr l = CopyrightLabel->get_layout(); + Pango::FontDescription fd = Pango::FontDescription("Sans, 11"); + l->set_font_description(fd); + l->set_justify(Pango::ALIGN_CENTER); + fd.set_size(int(size*Pango::SCALE)); + l->set_font_description(fd); + l->get_pixel_size(width,height); + while( width >= image_w-6 ){ + size-=0.5; + fd.set_size((int)(size*Pango::SCALE)); + l->set_font_description(fd); + l->get_pixel_size(width,height); + } + CopyrightLabel->modify_font(fd); // Create the Version information label Gtk::Label *VersionLabel = manage(new class Gtk::Label("Version")); @@ -199,11 +222,12 @@ About::About(): VersionLabel->set_padding(0,0); VersionLabel->set_justify(Gtk::JUSTIFY_CENTER); VersionLabel->set_line_wrap(false); - + VersionLabel->modify_fg(Gtk::STATE_NORMAL,Gdk::Color("black")); + // Set the version label to contain the correct information string ver; ver+="Version "VERSION" ("__DATE__" "__TIME__")\n"; - ver+="Using SYNFIG "; + ver+="Using Synfig "; ver+=synfig::get_version(); #ifdef __GNUC__ ver+=strprintf(" and GNU G++ %d.%d.%d",__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__); @@ -216,11 +240,30 @@ About::About(): #endif VersionLabel->set_text(ver); + /* Scale the text to fit */ + width = 0; + height = 0; + size=11; + l = VersionLabel->get_layout(); + fd = Pango::FontDescription("Sans, 11"); + l->set_font_description(fd); + l->set_justify(Pango::ALIGN_CENTER); + fd.set_size(int(size*Pango::SCALE)); + l->set_font_description(fd); + l->get_pixel_size(width,height); + while( width >= image_w-6 ){ + size-=0.5; + fd.set_size((int)(size*Pango::SCALE)); + l->set_font_description(fd); + l->get_pixel_size(width,height); + } + VersionLabel->modify_font(fd); + // Create the image that will be used on the close button Gtk::Image *image2 = manage(new class Gtk::Image(Gtk::StockID("gtk-close"), Gtk::IconSize(4))); image2->set_alignment(0.5,0.5); image2->set_padding(0,0); - + // Create the close button, and attach the image to it CloseButton = manage(new class Gtk::Button()); CloseButton->set_size_request(24,24); @@ -237,7 +280,7 @@ About::About(): tasklabel = manage(new class Gtk::Label()); tasklabel->set_size_request(image_w,24); tasklabel->set_use_underline(false); - + // Create the Gtk::Fixed container and put all of the widgets into it Gtk::Fixed *fixed1 = manage(new class Gtk::Fixed()); fixed1->put(*Logo, 0, 0); @@ -287,7 +330,7 @@ About::set_can_self_destruct(bool x) if(x==true) CloseButton->show(); else - CloseButton->hide(); + CloseButton->hide(); } synfig::ProgressCallback *