libyui-ncurses  2.54.5
NCPopupTextEntry.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: NCPopupTextEntry.cc
20 
21  Author: Michael Andres <ma@suse.de>
22 
23 /-*/
24 
25 #define YUILogComponent "ncurses"
26 #include <yui/YUILog.h>
27 #include "NCPopupTextEntry.h"
28 #include "NCInputField.h"
29 
30 
31 NCPopupTextEntry::NCPopupTextEntry( const wpos & at,
32  const std::string & label,
33  const std::string & text,
34  unsigned maxInput,
35  unsigned maxFld,
36  NCInputField::FTYPE t )
37  : NCPopup( at )
38  , wtext( 0 )
39 {
40  wtext = new NCInputField( this,
41  label,
42  false, // passwordMode = false
43  maxInput,
44  maxFld
45  );
46  YUI_CHECK_NEW( wtext );
47 
48  wtext->setValue( text );
49  wtext->setFldtype( t );
50  wtext->setReturnOnReturn( true );
51 
52 }
53 
54 
55 NCPopupTextEntry::~NCPopupTextEntry()
56 {
57 }
58 
59 
60 bool NCPopupTextEntry::postAgain()
61 {
62  if ( postevent == NCursesEvent::button )
63  postevent.detail = 0;
64 
65  return false;
66 }
67 
68 
69 std::string NCPopupTextEntry::askForText( const wpos & at,
70  const std::string & label,
71  const std::string & text,
72  unsigned maxInput,
73  unsigned maxFld )
74 {
75  NCPopupTextEntry * dialog = new NCPopupTextEntry( at, label, text, maxInput, maxFld,
76  NCInputField::PLAIN);
77  YUI_CHECK_NEW( dialog );
78  std::string result;
79 
80  dialog->post();
81  result = dialog->value();
82  YDialog::deleteTopmostDialog();
83 
84  return result;
85 }
Definition: position.h:109