X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fabout.cpp;h=656a87140acb42c4c50c242958dca335cf92df94;hb=e697fea5db64ff7d4c9dd285775c80765788a031;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..656a871 100644 --- a/synfig-studio/trunk/src/gtkmm/about.cpp +++ b/synfig-studio/trunk/src/gtkmm/about.cpp @@ -1,9 +1,12 @@ -/*! ======================================================================== -** 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 +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -14,6 +17,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 +88,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) @@ -155,34 +159,34 @@ public: /* === M E T H O D S ======================================================= */ About::About(): - Gtk::Window(Gtk::WINDOW_POPUP), + Gtk::Window(getenv("SYNFIG_DISABLE_POPUP_WINDOWS") ? Gtk::WINDOW_TOPLEVEL : Gtk::WINDOW_POPUP), can_self_destruct(true) { int image_w=300,image_h=350; std::string imagepath; #ifdef WIN32 - imagepath=App::get_base_path()+ETL_DIRECTORY_SEPERATOR+IMAGE_DIR; + imagepath=App::get_base_path()+ETL_DIRECTORY_SEPARATOR+IMAGE_DIR; #else imagepath=IMAGE_DIR; #endif char* synfig_root=getenv("SYNFIG_ROOT"); if(synfig_root) { imagepath=synfig_root; - imagepath+=ETL_DIRECTORY_SEPERATOR; - + imagepath+=ETL_DIRECTORY_SEPARATOR; + imagepath+="share/pixmaps"; } - imagepath+=ETL_DIRECTORY_SEPERATOR; - - + imagepath+=ETL_DIRECTORY_SEPARATOR; + + // 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 +194,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 +223,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 +241,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 +281,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 +331,7 @@ About::set_can_self_destruct(bool x) if(x==true) CloseButton->show(); else - CloseButton->hide(); + CloseButton->hide(); } synfig::ProgressCallback *