From 5855bf7b176215a141e87c23a2e71bd12e1bd9e4 Mon Sep 17 00:00:00 2001 From: maroy Date: Tue, 15 Feb 2005 12:05:08 +0000 Subject: [PATCH] added EntryBin --- livesupport/modules/widgets/etc/Makefile.in | 3 +- .../include/LiveSupport/Widgets/BlueBin.h | 13 +- .../include/LiveSupport/Widgets/EntryBin.h | 118 ++++++++++++++++++ .../LiveSupport/Widgets/WidgetFactory.h | 18 ++- livesupport/modules/widgets/src/BlueBin.cxx | 3 +- livesupport/modules/widgets/src/EntryBin.cxx | 78 ++++++++++++ .../modules/widgets/src/TestWindow.cxx | 7 +- livesupport/modules/widgets/src/TestWindow.h | 16 ++- .../modules/widgets/src/WidgetFactory.cxx | 22 +++- .../modules/widgets/var/entryBin/bottom.png | Bin 0 -> 143 bytes .../widgets/var/entryBin/bottomLeft.png | Bin 0 -> 176 bytes .../widgets/var/entryBin/bottomRight.png | Bin 0 -> 174 bytes .../modules/widgets/var/entryBin/left.png | Bin 0 -> 140 bytes .../modules/widgets/var/entryBin/right.png | Bin 0 -> 140 bytes .../modules/widgets/var/entryBin/top.png | Bin 0 -> 143 bytes .../modules/widgets/var/entryBin/topLeft.png | Bin 0 -> 173 bytes .../modules/widgets/var/entryBin/topRight.png | Bin 0 -> 172 bytes 17 files changed, 267 insertions(+), 11 deletions(-) create mode 100644 livesupport/modules/widgets/include/LiveSupport/Widgets/EntryBin.h create mode 100644 livesupport/modules/widgets/src/EntryBin.cxx create mode 100644 livesupport/modules/widgets/var/entryBin/bottom.png create mode 100644 livesupport/modules/widgets/var/entryBin/bottomLeft.png create mode 100644 livesupport/modules/widgets/var/entryBin/bottomRight.png create mode 100644 livesupport/modules/widgets/var/entryBin/left.png create mode 100644 livesupport/modules/widgets/var/entryBin/right.png create mode 100644 livesupport/modules/widgets/var/entryBin/top.png create mode 100644 livesupport/modules/widgets/var/entryBin/topLeft.png create mode 100644 livesupport/modules/widgets/var/entryBin/topRight.png 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 0000000000000000000000000000000000000000..a1fcad5406421711a68c3444deb1189bb14526ab GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02L{Ex;TbZ+)A>kd#cFHv*FK=U&03k m#UHp8xVZj!Ak)CW%5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02MiTx;TbZ++r|cIQ^gT^}F}C?mc?^ z?z5_*BIA#rzrK9?_VDeuZ=b%iu(7i6a`VXjWB$Oz478Y$iII_ugO!HYF6K+_mJUHx3vIVCg!01BQq>i_@% literal 0 HcmV?d00001 diff --git a/livesupport/modules/widgets/var/entryBin/bottomRight.png b/livesupport/modules/widgets/var/entryBin/bottomRight.png new file mode 100644 index 0000000000000000000000000000000000000000..80059ed4386b4ca9b5f378319e9c4d105df42806 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02MiSx;TbZ+)A>kd-`y{ef|Ic|JUni zp853n_4)t*|NZ@c{=?hj`eKEQc?z>9PMkQkb>_#fx6k+R@c8)jym_;Rfsu_N)<$yU T#713Hpjix_u6{1-oD!M<5feYt literal 0 HcmV?d00001 diff --git a/livesupport/modules/widgets/var/entryBin/left.png b/livesupport/modules/widgets/var/entryBin/left.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a6f95de1bb19896d5468eac866dbedba6b6cf8 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02Rr3x;TbZ+)AqX_UY@+)#mT_R;*sR i>d=t}mV#miCLV@%agJm!8O8fRl?5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02Rr3x;TbZ+)A>kfB$p-{rdm^{;gJ0 jJ#wUhrJ$IBiHBkK8jh>0%jU`gRWf+G`njxgN@xNAjua|( literal 0 HcmV?d00001 diff --git a/livesupport/modules/widgets/var/entryBin/top.png b/livesupport/modules/widgets/var/entryBin/top.png new file mode 100644 index 0000000000000000000000000000000000000000..abbdcd90bed0f1805a6398b4187c0680f78f94ee GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02L{Ex;TbZ+)CP0_S=q`XM>DQCEvly lKfi37l9Lv&KWAW(U{J{9aP{4}vKFYA!PC{xWt~$(69AjOC|Lji literal 0 HcmV?d00001 diff --git a/livesupport/modules/widgets/var/entryBin/topLeft.png b/livesupport/modules/widgets/var/entryBin/topLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..b947502812ee5cbddc103a02b2bd7d5dde0a4d56 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02SGLx;TbZ+)DcM_4W7V`tkO)f4NdN z)cpMR_S4zj<#KlaK0nt#{eAxaxV^RI|9?uev9XCMq$MXmefDh9Gy!%F0|xcO^0fxc S0(*c)F?hQAxvXweC literal 0 HcmV?d00001 diff --git a/livesupport/modules/widgets/var/entryBin/topRight.png b/livesupport/modules/widgets/var/entryBin/topRight.png new file mode 100644 index 0000000000000000000000000000000000000000..9b95fafba3097ddfc44d3ace47b8b1979b74019a GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab83P(>5jgR3=G$9T=9=E0`etGTq8a>QWZRN6Vp?JQWH}u3s0un02SGJx;TbZ+)CP0_S;Tcn_HjXT%O;2 zbKlOpi_`W0{r}JZ#Mrj(@4uhF&+FU$WjM8AhQtd_t`DC-e)#kAGrz(C2BjaO2WF?$ RxdKgM@O1TaS?83{1OPyAJSzYI literal 0 HcmV?d00001