libyui-ncurses  2.44.1
 All Classes Functions Variables
NCLabel.cc
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: NCLabel.cc
20 
21  Author: Michael Andres <ma@suse.de>
22 
23 /-*/
24 
25 #define YUILogComponent "ncurses"
26 #include <yui/YUILog.h>
27 #include "NCurses.h"
28 #include "NCLabel.h"
29 
30 
31 NCLabel::NCLabel( YWidget * parent,
32  const std::string & nlabel,
33  bool isHeading,
34  bool isOutputField )
35  : YLabel( parent, nlabel, isHeading, isOutputField )
36  , NCWidget( parent )
37  , heading( isHeading )
38 {
39  yuiDebug() << std::endl;
40  setText( nlabel );
41  hotlabel = &label;
42  wstate = NC::WSdumb;
43 }
44 
45 
46 NCLabel::~NCLabel()
47 {
48  yuiDebug() << std::endl;
49 }
50 
51 
52 int NCLabel::preferredWidth()
53 {
54  return wGetDefsze().W;
55 }
56 
57 
58 int NCLabel::preferredHeight()
59 {
60  return wGetDefsze().H;
61 }
62 
63 
64 void NCLabel::setEnabled( bool do_bv )
65 {
66  NCWidget::setEnabled( do_bv );
67  YLabel::setEnabled( do_bv );
68 }
69 
70 
71 void NCLabel::setSize( int newwidth, int newheight )
72 {
73  wRelocate( wpos( 0 ), wsze( newheight, newwidth ) );
74 }
75 
76 
77 void NCLabel::setText( const std::string & nlabel )
78 {
79  label = NCstring( nlabel );
80  yuiDebug() << "LABEL: " << NCstring( nlabel ) << " Longest line: " << label.width() << std::endl;
81  defsze = label.size();
82  YLabel::setText( nlabel );
83  Redraw();
84 }
85 
86 
87 void NCLabel::wRedraw()
88 {
89  if ( !win )
90  return;
91 
92  chtype bg = heading ? wStyle().dumb.title
93  : wStyle().dumb.text;
94 
95  win->bkgd( bg );
96  win->clear();
97  label.drawAt( *win, bg, bg );
98 }
int bkgd(const chtype ch)
Definition: ncursesw.h:1443
Definition: position.h:109
virtual void setEnabled(bool do_bv)=0
Definition: NCWidget.cc:391
Definition: position.h:154
virtual void setEnabled(bool do_bv)
Definition: NCLabel.cc:64