Author: kmachalkova
Date: Tue Dec 4 15:58:52 2007
New Revision: 42665
URL: http://svn.opensuse.org/viewcvs/yast?rev=42665&view=rev
Log:
Set dialog's default button correctly
Modified:
trunk/ncurses/src/NCDialog.cc
trunk/ncurses/src/NCDialog.h
trunk/ncurses/src/NCPushButton.cc
trunk/ncurses/src/NCPushButton.h
Modified: trunk/ncurses/src/NCDialog.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses/src/NCDialog.cc?rev=42665&r1=42664&r2=42665&view=diff
==============================================================================
--- trunk/ncurses/src/NCDialog.cc (original)
+++ trunk/ncurses/src/NCDialog.cc Tue Dec 4 15:58:52 2007
@@ -62,6 +62,7 @@
: YDialog ( dialogType, colorMode )
, pan ( 0 )
, dlgstyle ( 0 )
+ , defaultButton( 0 )
, inMultiDraw_i( 0 )
, active ( false )
, wActive ( this )
@@ -84,6 +85,7 @@
: YDialog ( dialogType, YDialogNormalColor )
, pan ( 0 )
, dlgstyle ( 0 )
+ , defaultButton( 0 )
, inMultiDraw_i( 0 )
, active ( false )
, wActive ( this )
@@ -232,6 +234,37 @@
///////////////////////////////////////////////////////////////////
//
//
+// METHOD NAME : NCDialog::setDefaultButton
+// METHOD TYPE : void
+//
+// DESCRIPTION : Set default button of this dialog (move keyboard
+// focus on it)
+//
+void NCDialog::setDefaultButton( NCPushButton *newButton )
+{
+ if ( newButton && defaultButton && (newButton != defaultButton ))
+ {
+ UIWAR << "Too many default push buttons: " <<
+ " only one allowed." << endl;
+ defaultButton->setDefaultButton( false );
+ }
+
+ defaultButton = newButton;
+
+ if (defaultButton)
+ {
+ UIDBG << "New default button: " << endl;
+ defaultButton->setKeyboardFocus();
+ }
+
+ YDialog::setDefaultButton( 0 );
+ YDialog::setDefaultButton( defaultButton );
+
+}
+
+///////////////////////////////////////////////////////////////////
+//
+//
// METHOD NAME : NCDialog::initDialog
// METHOD TYPE : void
//
@@ -256,8 +289,6 @@
//
void NCDialog::showDialog()
{
- NCMIL << "SHOW" << endl;
- dumpWidgetTree();
IODBG << "sd+ " << this << endl;
if ( pan && pan->hidden() ) {
getVisible();
Modified: trunk/ncurses/src/NCDialog.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses/src/NCDialog.h?rev=42665&r1=42664&r2=42665&view=diff
==============================================================================
--- trunk/ncurses/src/NCDialog.h (original)
+++ trunk/ncurses/src/NCDialog.h Tue Dec 4 15:58:52 2007
@@ -23,6 +23,7 @@
#include "YDialog.h"
#include "NCWidget.h"
+#include "NCPushButton.h"
class NCDialog;
@@ -61,6 +62,7 @@
NCursesUserPanel<NCDialog> * pan;
NCstyle::StyleSet mystyleset;
const NCstyle::Style * dlgstyle;
+ NCPushButton *defaultButton;
unsigned inMultiDraw_i;
@@ -147,6 +149,8 @@
**/
virtual void setSize( int newWidth, int newHeight );
+ virtual void setDefaultButton( NCPushButton *newButton );
+
protected:
enum NCDopts {
Modified: trunk/ncurses/src/NCPushButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses/src/NCPushButton.cc?rev=42665&r1=42664&r2=42665&view=diff
==============================================================================
--- trunk/ncurses/src/NCPushButton.cc (original)
+++ trunk/ncurses/src/NCPushButton.cc Tue Dec 4 15:58:52 2007
@@ -17,6 +17,8 @@
/-*/
#include "Y2Log.h"
+#include "YDialog.h"
+#include "NCDialog.h"
#include "NCurses.h"
#include "NCPushButton.h"
@@ -145,6 +147,33 @@
///////////////////////////////////////////////////////////////////
//
//
+// METHOD NAME : NCPushButton::setDefaultButton
+// METHOD TYPE : void
+//
+// DESCRIPTION : Mark this button as default within current dialog
+//
+void NCPushButton::setDefaultButton( bool def )
+{
+ YDialog *ydialog = findDialog();
+ NCDialog *dlg = 0;
+
+ if (ydialog)
+ {
+ dlg = dynamic_cast