From bc99e6a420c04b4607bffc90e528d9572649f95f Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 12 Jan 2003 23:55:30 +0000 Subject: [PATCH] remove userstring --- otk/Makefile.am | 2 +- otk/focuslabel.cc | 2 +- otk/focuslabel.hh | 7 ++- otk/font.cc | 22 +++++++--- otk/font.hh | 4 +- otk/label.cc | 2 +- otk/label.hh | 7 ++- otk/property.cc | 68 +++++++++++++---------------- otk/property.hh | 6 +-- otk/userstring.hh | 108 ---------------------------------------------- 10 files changed, 60 insertions(+), 168 deletions(-) delete mode 100644 otk/userstring.hh diff --git a/otk/Makefile.am b/otk/Makefile.am index 2ee73c10..dc84e0e2 100644 --- a/otk/Makefile.am +++ b/otk/Makefile.am @@ -12,7 +12,7 @@ libotk_la_SOURCES= color.cc display.cc font.cc gccache.cc image.cc \ property.cc imagecontrol.cc rect.cc screeninfo.cc \ texture.cc timer.cc timerqueuemanager.cc style.cc \ configuration.cc util.cc widget.cc focuswidget.cc \ - button.cc eventhandler.cc eventdispatcher.cc \ + button.cc eventhandler.cc eventdispatcher.cc ustring.cc \ label.cc focuslabel.cc application.cc appwidget.cc # otk_wrap.cc diff --git a/otk/focuslabel.cc b/otk/focuslabel.cc index e82fa1ed..397a2cac 100644 --- a/otk/focuslabel.cc +++ b/otk/focuslabel.cc @@ -41,7 +41,7 @@ void FocusLabel::update(void) : style()->getTextUnfocus()); unsigned int sidemargin = style()->getBevelWidth() * 2; - userstring t = _text; // the actual text to draw + std::string t = _text; // the actual text to draw int x = sidemargin; // x coord for the text // find a string that will fit inside the area for text diff --git a/otk/focuslabel.hh b/otk/focuslabel.hh index b3db6074..54a7f06f 100644 --- a/otk/focuslabel.hh +++ b/otk/focuslabel.hh @@ -4,7 +4,6 @@ #include "focuswidget.hh" #include "font.hh" -#include "userstring.hh" namespace otk { @@ -15,8 +14,8 @@ public: FocusLabel(Widget *parent); ~FocusLabel(); - inline const userstring &getText(void) const { return _text; } - void setText(const userstring &text) { _text = text; _dirty = true; } + inline const std::string &getText(void) const { return _text; } + void setText(const std::string &text) { _text = text; _dirty = true; } void update(void); @@ -26,7 +25,7 @@ private: //! Object used by Xft to render to the drawable XftDraw *_xftdraw; //! Text displayed in the label - userstring _text; + std::string _text; }; } diff --git a/otk/font.cc b/otk/font.cc index 6932971c..0f1ad8c1 100644 --- a/otk/font.cc +++ b/otk/font.cc @@ -10,7 +10,15 @@ extern "C" { #endif // HAVE_STDLIB_H } +#include +#include + +using std::string; +using std::cerr; +using std::endl; + #include "font.hh" +#include "util.hh" #include "display.hh" #include "color.hh" #include "screeninfo.hh" @@ -26,10 +34,10 @@ extern "C" { namespace otk { -std::string Font::_fallback_font = "fixed"; +string Font::_fallback_font = "fixed"; bool Font::_xft_init = false; -Font::Font(int screen_num, const std::string &fontstring, +Font::Font(int screen_num, const string &fontstring, bool shadow, unsigned char offset, unsigned char tint) : _screen_num(screen_num), _fontstring(fontstring), @@ -78,7 +86,7 @@ Font::~Font(void) void Font::drawString(XftDraw *d, int x, int y, const Color &color, - const userstring &string) const + const string &string, bool utf8) const { assert(d); @@ -90,7 +98,7 @@ void Font::drawString(XftDraw *d, int x, int y, const Color &color, c.color.alpha = _tint | _tint << 8; // transparent shadow c.pixel = BlackPixel(Display::display, _screen_num); - if (string.utf8()) + if (utf8) XftDrawStringUtf8(d, &c, _xftfont, x + _offset, _xftfont->ascent + y + _offset, (FcChar8*)string.c_str(), string.size()); @@ -107,7 +115,7 @@ void Font::drawString(XftDraw *d, int x, int y, const Color &color, c.pixel = color.pixel(); c.color.alpha = 0xff | 0xff << 8; // no transparency in Color yet - if (string.utf8()) + if (utf8) XftDrawStringUtf8(d, &c, _xftfont, x, _xftfont->ascent + y, (FcChar8*)string.c_str(), string.size()); else @@ -118,11 +126,11 @@ void Font::drawString(XftDraw *d, int x, int y, const Color &color, } -unsigned int Font::measureString(const userstring &string) const +unsigned int Font::measureString(const string &string, bool utf8) const { XGlyphInfo info; - if (string.utf8()) + if (utf8) XftTextExtentsUtf8(Display::display, _xftfont, (FcChar8*)string.c_str(), string.size(), &info); else diff --git a/otk/font.hh b/otk/font.hh index 2ffa39a5..9091b9bc 100644 --- a/otk/font.hh +++ b/otk/font.hh @@ -58,7 +58,7 @@ public: unsigned int maxCharWidth() const; unsigned int measureString(const std::string &string, - bool utf8 = true) const; + bool utf8 = false) const; //! Draws a string into an XftDraw object /*! @@ -66,7 +66,7 @@ public: different screens, you WILL have unpredictable results! :) */ void drawString(XftDraw *d, int x, int y, const Color &color, - const std::string &string, bool utf8 = true) const; + const std::string &string, bool utf8 = false) const; }; } diff --git a/otk/label.cc b/otk/label.cc index cacbb08e..6b6a8e35 100644 --- a/otk/label.cc +++ b/otk/label.cc @@ -35,7 +35,7 @@ void Label::update(void) const Font *ft = style()->getFont(); unsigned int sidemargin = style()->getBevelWidth() * 2; - userstring t = _text; // the actual text to draw + std::string t = _text; // the actual text to draw int x = sidemargin; // x coord for the text // find a string that will fit inside the area for text diff --git a/otk/label.hh b/otk/label.hh index 94ebe0b3..0366c262 100644 --- a/otk/label.hh +++ b/otk/label.hh @@ -4,7 +4,6 @@ #include "widget.hh" #include "font.hh" -#include "userstring.hh" namespace otk { @@ -15,8 +14,8 @@ public: Label(Widget *parent); ~Label(); - inline const userstring &getText(void) const { return _text; } - void setText(const userstring &text) { _text = text; _dirty = true; } + inline const std::string &getText(void) const { return _text; } + void setText(const std::string &text) { _text = text; _dirty = true; } void update(void); @@ -26,7 +25,7 @@ private: //! Object used by Xft to render to the drawable XftDraw *_xftdraw; //! Text displayed in the label - userstring _text; + std::string _text; }; } diff --git a/otk/property.cc b/otk/property.cc index 77bdfb03..ad9eacc9 100644 --- a/otk/property.cc +++ b/otk/property.cc @@ -163,7 +163,7 @@ Property::~Property() */ Atom Property::create(const char *name) const { - Atom a = XInternAtom(Display::display, name, false); + Atom a = XInternAtom(Display::display, name, False); assert(a); return a; } @@ -196,7 +196,7 @@ void Property::set(Window win, Atoms atom, Atoms type, assert(atom >= 0 && atom < NUM_ATOMS); assert(type >= 0 && type < NUM_ATOMS); set(win, _atoms[atom], _atoms[type], - reinterpret_cast(&value), 32, 1, false); + reinterpret_cast(&value), 32, 1, False); } @@ -209,7 +209,7 @@ void Property::set(Window win, Atoms atom, Atoms type, assert(atom >= 0 && atom < NUM_ATOMS); assert(type >= 0 && type < NUM_ATOMS); set(win, _atoms[atom], _atoms[type], - reinterpret_cast(value), 32, elements, false); + reinterpret_cast(value), 32, elements, False); } @@ -217,7 +217,7 @@ void Property::set(Window win, Atoms atom, Atoms type, * Set an string property value on a window. */ void Property::set(Window win, Atoms atom, StringType type, - const userstring &value) const + const std::string &value) const { assert(atom >= 0 && atom < NUM_ATOMS); assert(type >= 0 && type < NUM_STRING_TYPE); @@ -226,11 +226,11 @@ void Property::set(Window win, Atoms atom, StringType type, switch (type) { case ascii: t = _atoms[Atom_String]; break; case utf8: t = _atoms[Atom_Utf8]; break; - default: assert(false); return; // unhandled StringType + default: assert(False); return; // unhandled StringType } set(win, _atoms[atom], t, reinterpret_cast(const_cast(value.c_str())), - 8, value.size() + 1, false); // add 1 to the size to include the null + 8, value.size() + 1, False); // add 1 to the size to include the null } @@ -238,7 +238,7 @@ void Property::set(Window win, Atoms atom, StringType type, * Set an array of string property values on a window. */ void Property::set(Window win, Atoms atom, StringType type, - const userstring::vector &strings) const + const StringVect &strings) const { assert(atom >= 0 && atom < NUM_ATOMS); assert(type >= 0 && type < NUM_STRING_TYPE); @@ -247,26 +247,26 @@ void Property::set(Window win, Atoms atom, StringType type, switch (type) { case ascii: t = _atoms[Atom_String]; break; case utf8: t = _atoms[Atom_Utf8]; break; - default: assert(false); return; // unhandled StringType + default: assert(False); return; // unhandled StringType } std::string value; - userstring::vector::const_iterator it = strings.begin(); - const userstring::vector::const_iterator end = strings.end(); + StringVect::const_iterator it = strings.begin(); + const StringVect::const_iterator end = strings.end(); for (; it != end; ++it) value += *it + '\0'; set(win, _atoms[atom], t, reinterpret_cast(const_cast(value.c_str())), - 8, value.size(), false); + 8, value.size(), False); } /* * Internal get function used by all of the typed get functions. * Gets an property's value from a window. - * Returns true if the property was successfully retrieved; false if the + * Returns True if the property was successfully retrieved; False if the * property did not exist on the window, or has a different type/size format * than the user tried to retrieve. */ @@ -283,11 +283,11 @@ bool Property::get(Window win, Atom atom, Atom type, unsigned long ret_bytes; int result; unsigned long maxread = *nelements; - bool ret = false; + bool ret = False; // try get the first element result = XGetWindowProperty(Display::display, win, atom, 0l, 1l, - false, AnyPropertyType, &ret_type, &ret_size, + False, AnyPropertyType, &ret_type, &ret_size, nelements, &ret_bytes, &c_val); ret = (result == Success && ret_type == type && ret_size == size && *nelements > 0); @@ -305,7 +305,7 @@ bool Property::get(Window win, Atom atom, Atom type, if (remain > size/8 * (signed)maxread) // dont get more than the max remain = size/8 * (signed)maxread; result = XGetWindowProperty(Display::display, win, atom, 0l, - remain, false, type, &ret_type, &ret_size, + remain, False, type, &ret_type, &ret_size, nelements, &ret_bytes, &c_val); ret = (result == Success && ret_type == type && ret_size == size && ret_bytes == 0); @@ -352,10 +352,10 @@ bool Property::get(Window win, Atoms atom, Atoms type, unsigned long num = 1; if (! get(win, _atoms[atom], _atoms[type], &num, reinterpret_cast(&temp), 32)) - return false; + return False; *value = temp[0]; delete [] temp; - return true; + return True; } @@ -363,25 +363,20 @@ bool Property::get(Window win, Atoms atom, Atoms type, * Gets an string property's value from a window. */ bool Property::get(Window win, Atoms atom, StringType type, - userstring *value) const + std::string *value) const { unsigned long n = 1; - userstring::vector s; + StringVect s; if (get(win, atom, type, &n, &s)) { *value = s[0]; - switch (type) { - case ascii: value->setUtf8(false); break; - case utf8: value->setUtf8(true); break; - default: assert(false); return false; // unhandled StringType - } - return true; + return True; } - return false; + return False; } bool Property::get(Window win, Atoms atom, StringType type, - unsigned long *nelements, userstring::vector *strings) const + unsigned long *nelements, StringVect *strings) const { assert(atom >= 0 && atom < NUM_ATOMS); assert(type >= 0 && type < NUM_STRING_TYPE); @@ -389,27 +384,26 @@ bool Property::get(Window win, Atoms atom, StringType type, assert(*nelements > 0); Atom t; - bool isutf8; switch (type) { - case ascii: t = _atoms[Atom_String]; isutf8 = false; break; - case utf8: t = _atoms[Atom_Utf8]; isutf8 = true; break; - default: assert(false); return false; // unhandled StringType + case ascii: t = _atoms[Atom_String]; break; + case utf8: t = _atoms[Atom_Utf8]; break; + default: assert(False); return False; // unhandled StringType } unsigned char *value; unsigned long elements = (unsigned) -1; if (!get(win, _atoms[atom], t, &elements, &value, 8) || elements < 1) - return false; + return False; - userstring s(reinterpret_cast(value), elements, isutf8); + std::string s(reinterpret_cast(value), elements); delete [] value; - userstring::const_iterator it = s.begin(), end = s.end(); + std::string::const_iterator it = s.begin(), end = s.end(); unsigned long num = 0; while(num < *nelements) { - userstring::const_iterator tmp = it; // current string.begin() + std::string::const_iterator tmp = it; // current string.begin() it = std::find(tmp, end, '\0'); // look for null between tmp and end - strings->push_back(userstring(tmp, it, isutf8)); // s[tmp:it) + strings->push_back(std::string(tmp, it)); // s[tmp:it) ++num; if (it == end) break; ++it; @@ -418,7 +412,7 @@ bool Property::get(Window win, Atoms atom, StringType type, *nelements = num; - return true; + return True; } diff --git a/otk/property.hh b/otk/property.hh index b850c562..7f4ae266 100644 --- a/otk/property.hh +++ b/otk/property.hh @@ -1,6 +1,6 @@ // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -#ifndef __property_hh -#define __property_hh +#ifndef __atom_hh +#define __atom_hh /*! @file property.hh @brief Provides access to window properties @@ -327,4 +327,4 @@ public: } -#endif // __property_hh +#endif // __atom_hh diff --git a/otk/userstring.hh b/otk/userstring.hh deleted file mode 100644 index c7c81d0c..00000000 --- a/otk/userstring.hh +++ /dev/null @@ -1,108 +0,0 @@ -// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -#ifndef __userstring_hh -#define __userstring_hh - -#include -#include - -extern "C" { -#include -} - -namespace otk { - -//! userstring is a std::string with an extra flag specifying if the string is -//! UTF-8 encoded. -class userstring : public std::string -{ -public: - //! A vector of userstrings - typedef std::vector vector; - -private: - bool _utf8; - -public: - userstring(bool utf8) : std::string(), _utf8(utf8) {} - userstring(const userstring& s, size_type pos = 0, - size_type n = npos) : std::string(s, pos, n), _utf8(s._utf8) {} - userstring(const char *s, bool utf8) : std::string(s), _utf8(utf8) {} - userstring(const char *s, size_type n, bool utf8) : std::string(s, n), - _utf8(utf8) {} - userstring(size_type n, char c, bool utf8) : std::string(n, c), - _utf8(utf8) {} - userstring(const_iterator first, const_iterator last, bool utf8) : - std::string(first, last), _utf8(utf8) {} - - //! Returns if the string is encoded in UTF-8 or not - inline bool utf8() const { return _utf8; } - - inline void setUtf8(bool u) { _utf8 = u; } - - inline userstring& insert(size_type pos, const userstring& s) { - assert(s._utf8 == _utf8); - std::string::insert(pos, s); - return *this; - } - - inline userstring& insert(size_type pos, - const userstring& s, - size_type pos1, size_type n) { - assert(s._utf8 == _utf8); - std::string::insert(pos, s, pos1, n); - return *this; - } - - inline userstring& append(const userstring& s) { - assert(s._utf8 == _utf8); - std::string::append(s); - return *this; - } - - inline userstring& append(const userstring& s, - size_type pos, size_type n) { - assert(s._utf8 == _utf8); - std::string::append(s, pos, n); - return *this; - } - - inline userstring& assign(const userstring& s) { - assert(s._utf8 == _utf8); - std::string::assign(s); - return *this; - } - - inline userstring& assign(const userstring& s, - size_type pos, size_type n) { - assert(s._utf8 == _utf8); - std::string::assign(s, pos, n); - return *this; - } - - inline userstring& replace(size_type pos, size_type n, - const userstring& s) { - assert(s._utf8 == _utf8); - std::string::replace(pos, n, s); - return *this; - } - - inline userstring& replace(size_type pos, size_type n, - const userstring& s, - size_type pos1, size_type n1) { - assert(s._utf8 == _utf8); - std::string::replace(pos, n, s, pos1, n1); - return *this; - } - - inline userstring& operator=(const userstring& s) { - return assign(s); - } - - inline userstring& operator+=(const userstring& s) { - return append(s); - } -}; - -} - -#endif // __userstring_hh -- 2.45.2