/[svn]/gigedit/trunk/src/gigedit/wrapLabel.hh
ViewVC logotype

Contents of /gigedit/trunk/src/gigedit/wrapLabel.hh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3735 - (show annotations) (download)
Sat Feb 1 19:28:43 2020 UTC (4 years, 1 month ago) by schoenebeck
File size: 2354 byte(s)
- Added widget class 'MultiLineLabel' to fix size issues with stock
  Gtk::Label on large text blocks.

1 /* *************************************************************************
2 * Copyright (c) 2005 VMware, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 * *************************************************************************/
23
24 #ifndef LIBVIEW_WRAP_LABEL_HH
25 #define LIBVIEW_WRAP_LABEL_HH
26
27
28 #include <gtkmm/label.h>
29
30
31 namespace view {
32
33 /** @brief Multi-line label for gtk(mm) <= 2.
34 *
35 * This class is only used for gtk(mm) <= 2. If application is compiled against
36 * gtk(mm) >= 3 then this class is not compiled at all. gtk(mm) 3 added support
37 * for automatic multi-line labels by calling its set_line_wrap() method.
38 * However Gtk::Label may still cause size calculation problems under certain
39 * conditions. If you encountered such a problem, then use @c MultiLineLabel for
40 * for gtk(mm) >= 3 instead.
41 *
42 * @see MultiLineLabel for gtk(mm) >= 3
43 */
44 class WrapLabel
45 : public Gtk::Label
46 {
47 public:
48 WrapLabel(const Glib::ustring &text = "");
49
50 void set_text(const Glib::ustring &str);
51 void set_markup(const Glib::ustring &str);
52
53 protected:
54 virtual void on_size_allocate(Gtk::Allocation &alloc);
55 virtual void on_size_request(Gtk::Requisition *req);
56
57 private:
58 void SetWrapWidth(int width);
59
60 int mWrapWidth;
61 int mWrapHeight;
62 };
63
64
65 } /* namespace view */
66
67
68 #endif /* LIBVIEW_WRAP_LABEL_HH */

  ViewVC Help
Powered by ViewVC