diff --git a/livesupport/modules/widgets/etc/Makefile.in b/livesupport/modules/widgets/etc/Makefile.in index 9b6ffdf1c..8840b15f0 100644 --- a/livesupport/modules/widgets/etc/Makefile.in +++ b/livesupport/modules/widgets/etc/Makefile.in @@ -21,7 +21,7 @@ # # # Author : $Author: maroy $ -# Version : $Revision: 1.6 $ +# Version : $Revision: 1.7 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/etc/Makefile.in,v $ # # @configure_input@ @@ -110,6 +110,7 @@ LDFLAGS = @LDFLAGS@ -pthread \ WIDGETS_LIB_OBJS = ${TMP_DIR}/ImageButton.o \ ${TMP_DIR}/Button.o \ ${TMP_DIR}/BlueBin.o \ + ${TMP_DIR}/EntryBin.o \ ${TMP_DIR}/WhiteWindow.o \ ${TMP_DIR}/CornerImages.o \ ${TMP_DIR}/ComboBoxText.o \ diff --git a/livesupport/modules/widgets/include/LiveSupport/Widgets/BlueBin.h b/livesupport/modules/widgets/include/LiveSupport/Widgets/BlueBin.h index 2b6c9ee82..46041d46c 100644 --- a/livesupport/modules/widgets/include/LiveSupport/Widgets/BlueBin.h +++ b/livesupport/modules/widgets/include/LiveSupport/Widgets/BlueBin.h @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/BlueBin.h,v $ ------------------------------------------------------------------------------*/ @@ -63,7 +63,7 @@ using namespace LiveSupport::Core; * A container holding exactly one child, habing a light blue border to it. * * @author $Author: maroy $ - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ */ class BlueBin : public Gtk::Bin { @@ -113,6 +113,15 @@ class BlueBin : public Gtk::Bin int y) throw (); protected: + /** + * Return the background color. + */ + const Gdk::Color & + getBgColor(void) const throw () + { + return bgColor; + } + /** * Handle the size request event. * diff --git a/livesupport/modules/widgets/include/LiveSupport/Widgets/EntryBin.h b/livesupport/modules/widgets/include/LiveSupport/Widgets/EntryBin.h new file mode 100644 index 000000000..8ffdfe64a --- /dev/null +++ b/livesupport/modules/widgets/include/LiveSupport/Widgets/EntryBin.h @@ -0,0 +1,118 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + 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. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: maroy $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/EntryBin.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef LiveSupport_Widgets_EntryBin_h +#define LiveSupport_Widgets_EntryBin_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include + +#include "LiveSupport/Core/Ptr.h" +#include "LiveSupport/Widgets/CornerImages.h" +#include "LiveSupport/Widgets/BlueBin.h" + + +namespace LiveSupport { +namespace Widgets { + +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * A container, holding a Gtk::Entry as its only child. + * + * @author $Author: maroy $ + * @version $Revision: 1.1 $ + */ +class EntryBin : public BlueBin +{ + private: + /** + * The text entry for this container. + */ + Ptr::Ref entry; + + + public: + /** + * Constructor, with only one state. + * + * @param backgroundColor the RGB value for the background color. + * @param cornerImages the corner images. + */ + EntryBin(unsigned int backgroundColor, + Ptr::Ref cornerImages) + throw (); + + /** + * A virtual destructor. + */ + virtual + ~EntryBin(void) throw (); + + /** + * Return the entry held in this container. + * + * @return the entry held in this container. + */ + Ptr::Ref + getEntry(void) throw () + { + return entry; + } +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Widgets +} // namespace LiveSupport + +#endif // LiveSupport_Widgets_EntryBin_h + diff --git a/livesupport/modules/widgets/include/LiveSupport/Widgets/WidgetFactory.h b/livesupport/modules/widgets/include/LiveSupport/Widgets/WidgetFactory.h index e42066fb3..2458c989a 100644 --- a/livesupport/modules/widgets/include/LiveSupport/Widgets/WidgetFactory.h +++ b/livesupport/modules/widgets/include/LiveSupport/Widgets/WidgetFactory.h @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/WidgetFactory.h,v $ ------------------------------------------------------------------------------*/ @@ -49,6 +49,7 @@ #include "LiveSupport/Widgets/ImageButton.h" #include "LiveSupport/Widgets/ComboBoxText.h" #include "LiveSupport/Widgets/BlueBin.h" +#include "LiveSupport/Widgets/EntryBin.h" namespace LiveSupport { @@ -83,7 +84,7 @@ using namespace LiveSupport::Core; * * * @author $Author: maroy $ - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ */ class WidgetFactory : virtual public Configurable @@ -151,6 +152,11 @@ class WidgetFactory : */ Ptr::Ref darkBlueBinImages; + /** + * The corner images for the entry bin. + */ + Ptr::Ref entryBinImages; + /** * The corner images for the white window. */ @@ -273,6 +279,14 @@ class WidgetFactory : Ptr::Ref createDarkBlueBin(void) throw (); + /** + * Create and return a singular container holding a text entry. + * + * @return a singular container holding a text entry. + */ + Ptr::Ref + createEntryBin(void) throw (); + /** * Return the images for the white window. * diff --git a/livesupport/modules/widgets/src/BlueBin.cxx b/livesupport/modules/widgets/src/BlueBin.cxx index 64881f75e..639098d6c 100644 --- a/livesupport/modules/widgets/src/BlueBin.cxx +++ b/livesupport/modules/widgets/src/BlueBin.cxx @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/BlueBin.cxx,v $ ------------------------------------------------------------------------------*/ @@ -33,7 +33,6 @@ #include "configure.h" #endif -#include #include "LiveSupport/Widgets/BlueBin.h" diff --git a/livesupport/modules/widgets/src/EntryBin.cxx b/livesupport/modules/widgets/src/EntryBin.cxx new file mode 100644 index 000000000..fb8d1a490 --- /dev/null +++ b/livesupport/modules/widgets/src/EntryBin.cxx @@ -0,0 +1,78 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + 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. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: maroy $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/EntryBin.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + + +#include "LiveSupport/Widgets/EntryBin.h" + + +using namespace LiveSupport::Core; +using namespace LiveSupport::Widgets; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Constructor. + *----------------------------------------------------------------------------*/ +EntryBin :: EntryBin(unsigned int backgroundColor, + Ptr::Ref cornerImages) + throw () + : BlueBin(backgroundColor, cornerImages) +{ + entry.reset(new Gtk::Entry()); + entry->set_has_frame(false); + + // TODO: this doesn't change the background color, for some reason :( + entry->modify_bg(Gtk::STATE_NORMAL, getBgColor()); + + add(*entry); +} + + +/*------------------------------------------------------------------------------ + * Destructor. + *----------------------------------------------------------------------------*/ +EntryBin :: ~EntryBin(void) throw () +{ +} + diff --git a/livesupport/modules/widgets/src/TestWindow.cxx b/livesupport/modules/widgets/src/TestWindow.cxx index 902b18043..e689e7c85 100644 --- a/livesupport/modules/widgets/src/TestWindow.cxx +++ b/livesupport/modules/widgets/src/TestWindow.cxx @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.8 $ + Version : $Revision: 1.9 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/TestWindow.cxx,v $ ------------------------------------------------------------------------------*/ @@ -76,6 +76,10 @@ TestWindow :: TestWindow (void) comboBoxText->append_text("very very very long item3"); comboBoxText->set_active_text("item2"); + // create a text entry, ant put it inside a blue bin + entryBin = widgetFactory->createEntryBin(); + entry = entryBin->getEntry(); + // create a blue container blueBin = widgetFactory->createDarkBlueBin(); @@ -84,6 +88,7 @@ TestWindow :: TestWindow (void) layout->attach(*imageButton, 0, 1, 0, 1); layout->attach(*button, 0, 1, 1, 2); layout->attach(*comboBoxText, 0, 1, 2, 3); + layout->attach(*entryBin, 0, 1, 3, 4); blueBin->add(*layout); add(*blueBin); diff --git a/livesupport/modules/widgets/src/TestWindow.h b/livesupport/modules/widgets/src/TestWindow.h index 4fc3e3a44..40192f1e1 100644 --- a/livesupport/modules/widgets/src/TestWindow.h +++ b/livesupport/modules/widgets/src/TestWindow.h @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.5 $ + Version : $Revision: 1.6 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/TestWindow.h,v $ ------------------------------------------------------------------------------*/ @@ -40,6 +40,7 @@ #include "configure.h" #endif +#include #include #include @@ -49,6 +50,7 @@ #include "LiveSupport/Widgets/ImageButton.h" #include "LiveSupport/Widgets/ComboBoxText.h" #include "LiveSupport/Widgets/BlueBin.h" +#include "LiveSupport/Widgets/EntryBin.h" #include "LiveSupport/Widgets/WhiteWindow.h" @@ -69,7 +71,7 @@ using namespace LiveSupport::Core; * A window, enabling interactive testing of UI components. * * @author $Author: maroy $ - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ */ class TestWindow : public WhiteWindow { @@ -94,6 +96,16 @@ class TestWindow : public WhiteWindow */ Ptr::Ref comboBoxText; + /** + * A text entry. + */ + Ptr::Ref entry; + + /** + * A container holding a text entry. + */ + Ptr::Ref entryBin; + /** * A blue container. */ diff --git a/livesupport/modules/widgets/src/WidgetFactory.cxx b/livesupport/modules/widgets/src/WidgetFactory.cxx index e9e482dc4..0e98f9cc1 100644 --- a/livesupport/modules/widgets/src/WidgetFactory.cxx +++ b/livesupport/modules/widgets/src/WidgetFactory.cxx @@ -22,7 +22,7 @@ Author : $Author: maroy $ - Version : $Revision: 1.5 $ + Version : $Revision: 1.6 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/WidgetFactory.cxx,v $ ------------------------------------------------------------------------------*/ @@ -33,6 +33,8 @@ #include "configure.h" #endif +#include + #include "LiveSupport/Widgets/WidgetFactory.h" @@ -99,6 +101,11 @@ static const std::string blueBinPath = "blueBin/"; */ static const std::string darkBlueBinPath = "darkBlueBin/"; +/** + * The relative path for the entry bin images. + */ +static const std::string entryBinPath = "entryBin/"; + /** * The relative path for the white window images. */ @@ -186,6 +193,7 @@ WidgetFactory :: configure(const xmlpp::Element & element) // load the images for the bins blueBinImages.reset(new CornerImages(path + blueBinPath)); darkBlueBinImages.reset(new CornerImages(path + darkBlueBinPath)); + entryBinImages.reset(new CornerImages(path + entryBinPath)); // load the white window corner images whiteWindowImages.reset(new CornerImages(path + whiteWindowPath)); @@ -265,6 +273,18 @@ WidgetFactory :: createDarkBlueBin(void) throw () } +/*------------------------------------------------------------------------------ + * Create an entry bin + *----------------------------------------------------------------------------*/ +Ptr::Ref +WidgetFactory :: createEntryBin(void) throw () +{ + Ptr::Ref entryBin(new EntryBin(0x99cdff, entryBinImages)); + + return entryBin; +} + + /*------------------------------------------------------------------------------ * Create a stock button *----------------------------------------------------------------------------*/ diff --git a/livesupport/modules/widgets/var/entryBin/bottom.png b/livesupport/modules/widgets/var/entryBin/bottom.png new file mode 100644 index 000000000..a1fcad540 Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/bottom.png differ diff --git a/livesupport/modules/widgets/var/entryBin/bottomLeft.png b/livesupport/modules/widgets/var/entryBin/bottomLeft.png new file mode 100644 index 000000000..507b5ee9c Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/bottomLeft.png differ diff --git a/livesupport/modules/widgets/var/entryBin/bottomRight.png b/livesupport/modules/widgets/var/entryBin/bottomRight.png new file mode 100644 index 000000000..80059ed43 Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/bottomRight.png differ diff --git a/livesupport/modules/widgets/var/entryBin/left.png b/livesupport/modules/widgets/var/entryBin/left.png new file mode 100644 index 000000000..a9a6f95de Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/left.png differ diff --git a/livesupport/modules/widgets/var/entryBin/right.png b/livesupport/modules/widgets/var/entryBin/right.png new file mode 100644 index 000000000..047fed107 Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/right.png differ diff --git a/livesupport/modules/widgets/var/entryBin/top.png b/livesupport/modules/widgets/var/entryBin/top.png new file mode 100644 index 000000000..abbdcd90b Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/top.png differ diff --git a/livesupport/modules/widgets/var/entryBin/topLeft.png b/livesupport/modules/widgets/var/entryBin/topLeft.png new file mode 100644 index 000000000..b94750281 Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/topLeft.png differ diff --git a/livesupport/modules/widgets/var/entryBin/topRight.png b/livesupport/modules/widgets/var/entryBin/topRight.png new file mode 100644 index 000000000..9b95fafba Binary files /dev/null and b/livesupport/modules/widgets/var/entryBin/topRight.png differ