Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Examples

YUI.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                      __   __    ____ _____ ____                      |
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |
00005 |                       \ V / _` \___ \ | |   __) |                    |
00006 |                        | | (_| |___) || |  / __/                     |
00007 |                        |_|\__,_|____/ |_| |_____|                    |
00008 |                                                                      |
00009 |                               core system                            |
00010 |                                                        (C) SuSE GmbH |
00011 \----------------------------------------------------------------------/
00012 
00013   File:         YUI.h
00014 
00015   Author:       Mathias Kettner <kettner@suse.de>
00016   Maintainer:   Stefan Hundhammer <sh@suse.de>
00017 
00018 /-*/
00019 
00020 #ifndef YUI_h
00021 #define YUI_h
00022 
00023 #include <pthread.h>
00024 #include <deque>
00025 #include <ycp/YCPString.h>
00026 #include <ycp/YCPVoid.h>
00027 #include <ycp/YCPTerm.h>
00028 #include <ycp/YCPInteger.h>
00029 #include <ycp/YCPMap.h>
00030 #include <ycp/YCPBoolean.h>
00031 #include <ycp/YCPByteblock.h>
00032 
00033 #include "YWidget.h"
00034 #include "YAlignment.h"
00035 
00036 
00037 using std::deque;
00038 using std::string;
00039 
00040 class YContainerWidget;
00041 class YEvent;
00042 class YDialog;
00043 class YMacroPlayer;
00044 class YMacroRecorder;
00045 class YMenu;
00046 class YMenuButton;
00047 class YMultiSelectionBox;
00048 class YRadioButtonGroup;
00049 class YTree;
00050 class YTreeItem;
00051 class Y2Component;
00052 
00053 
00054 typedef struct
00055 {
00056     int red;
00057     int green;
00058     int blue;
00059 } YColor;
00060 
00061 struct  YUIBuiltinCallData
00062 {
00063     void *      function;
00064     int         argc;
00065     YCPValue *  argv;
00066     YCPValue    result;
00067 
00068     YUIBuiltinCallData()
00069         : result( YCPVoid() )
00070     {
00071         function        = 0;
00072         argc            = 0;
00073         argv            = 0;
00074     }
00075 };
00076 
00077 
00094 class YUI
00095 {
00096 protected:
00100     YUI( bool with_threads );
00101 
00102     
00103 public:
00104     
00108     virtual ~YUI();
00109 
00113     YDialog *currentDialog() const;
00114 
00115 
00124     virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00125 
00132     void unblockEvents() { blockEvents( false ); }
00133 
00139     virtual bool eventsBlocked() const { return _events_blocked; }
00140 
00145     void topmostConstructorHasFinished();
00146 
00155     virtual void internalError( const char *msg );
00156 
00160     static int Recode( const string & str,
00161                        const string & from,
00162                        const string & to,
00163                        string & outstr );
00164 
00168     int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00169 
00170 
00174     int parseTreeItemList( const YCPList & itemList, YTree *tree, YTreeItem *parentItem = 0 );
00175 
00176 
00180     int parseMultiSelectionBoxItemList( const YCPList & item_list, YMultiSelectionBox * multi_sel_box );
00181 
00185     bool YUI::parseRgb( const YCPValue & val, YColor *color, bool complain );
00186 
00197     YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00198 
00202     YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00203 
00212     YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00213 
00222     YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00223 
00227     YCPBoolean evaluateReplaceWidget( const YCPValue & value_id, const YCPTerm & term );
00228 
00234     int defaultFunctionKey( YCPString label );
00235 
00243     string productName() const { return _productName; }
00244 
00249     static bool reverseLayout() { return _reverseLayout; }
00250 
00254     static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00255 
00261     YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00262 
00267     static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00268 
00272     void setCallback( Y2Component * callback ) { _callback = callback; }
00273     
00277     Y2Component * getCallback() const { return _callback; }
00278 
00283     YCPValue evaluateAskForExistingDirectory            ( const YCPString& startDir, const YCPString& headline );
00284     YCPValue evaluateAskForExistingFile                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00285     YCPValue evaluateAskForSaveFileName                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00286     void evaluateBusyCursor                             ();
00287     YCPValue evaluateChangeWidget                       ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00288     void evaluateCheckShortcuts                         ();
00289     YCPValue evaluateCloseDialog                        ();
00290     void evaluateDumpWidgetTree                         ();
00291     void evaluateFakeUserInput                          ( const YCPValue & next_input );
00292     YCPMap evaluateGetDisplayInfo                       ();
00293     YCPString evaluateGetLanguage                       ( const YCPBoolean & strip_encoding );
00294     YCPValue evaluateGetModulename                      ( const YCPTerm & term );
00295     YCPString evaluateGetProductName                    ();
00296     YCPString evaluateGlyph                             ( const YCPSymbol & symbol );
00297     YCPValue evaluateHasSpecialWidget                   ( const YCPSymbol & widget );
00298     void evaluateMakeScreenShot                         ( const YCPString & filename );
00299     void evaluateNormalCursor                           ();
00300     YCPBoolean evaluateOpenDialog                       ( const YCPTerm & term, const YCPTerm & term = YCPNull() );
00301     void evaluatePlayMacro                              ( const YCPString & filename );
00302     void evaluatePostponeShortcutCheck                  ();
00303     YCPValue evaluateQueryWidget                        ( const YCPValue& value_id, const YCPValue& property );
00304     void evaluateRecalcLayout                           ();
00305     YCPValue evaluateRecode                             ( const YCPString & from, const YCPString & to, const YCPString & text );
00306     void evaluateRecordMacro                            ( const YCPString & filename );
00307     void evaluateRedrawScreen                           ();
00308     YCPValue evaluateRunPkgSelection                    ( const YCPValue & value_id );
00309     void evaluateSetConsoleFont                         ( const YCPString& magic, 
00310                                                           const YCPString& font,
00311                                                           const YCPString& screen_map, 
00312                                                           const YCPString& unicode_map, 
00313                                                           const YCPString& encoding );
00314     void evaluateSetKeyboard                            ();
00315     YCPBoolean evaluateSetFocus                         ( const YCPValue & value_id );
00316     void evaluateSetFunctionKeys                        ( const YCPMap & new_keys );
00317     void evaluateSetLanguage                            ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00318     void evaluateSetModulename                          ( const YCPString & name );
00319     void evaluateSetProductName                         ( const YCPString & name );
00320     void evaluateStopRecordMacro                        ();
00321     YCPBoolean evaluateWidgetExists                     ( const YCPValue & value_id );
00322 
00323     YCPValue evaluateUserInput                          ();
00324     YCPValue evaluateTimeoutUserInput                   ( const YCPInteger & timeout );
00325     YCPValue evaluateWaitForEvent                       ( const YCPInteger & timeout = YCPNull() );
00326     YCPValue evaluateWizardCommand                      ( const YCPTerm & command );
00327     YCPValue evaluatePollInput                          ();
00328 
00337     void uiThreadMainLoop();
00338 
00339 
00340 protected:
00341 
00342 
00343 
00344 
00345     const char *moduleName();
00346 
00347     // Event handling, execution flow
00348 
00363     virtual void idleLoop( int fd_ycp );
00364 
00383     virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00384 
00399     virtual YEvent * pollInput() = 0;
00400 
00405     virtual void showDialog( YDialog *dialog );
00406 
00412     virtual void closeDialog( YDialog *dialog );
00413 
00414 
00423     virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00424 
00425 
00426     //
00427     // Widget creation functions - container widgets
00428     //
00429 
00434     virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00435 
00439     virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00440 
00444     virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00445 
00449     virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00450                                                YAlignmentType halign,
00451                                                YAlignmentType valign ) = 0;
00452 
00456     virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00457 
00458 
00462     virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00463 
00467     virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00468 
00469 
00470 
00471     //
00472     // Widget creation functions - leaf widgets
00473     //
00474 
00478     virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00479 
00483     virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00484 
00491     virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00492 
00493     
00498     virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00499 
00500 
00507     virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00508                                     const YCPString & label, int visibleLines, int maxLines ) = 0;
00509 
00514     virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00515 
00520     virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00521 
00527     virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00528                                         const YCPString & label, bool checked ) = 0;
00529 
00535     virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00536 
00540     virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00541 
00545     virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00546 
00550     virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00551 
00555     virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00556 
00560     virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00561 
00565     virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00566 
00570     virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00571 
00575     virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00576                                         const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00577 
00581     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00582 
00586     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00587 
00591     virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00592                                      const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00593 
00600     virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00601 
00605     virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00606 
00607 
00615     virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00616     virtual bool     hasDummySpecialWidget() { return true; }
00617 
00625     virtual YWidget *   createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00626                                                 const YCPString & label,
00627                                                 const YCPString & filename,
00628                                                 int expectedSize );
00629     
00630     virtual bool        hasDownloadProgress() { return false; }
00631 
00639     virtual YWidget *   createBarGraph( YWidget *parent, YWidgetOpt & opt );
00640     virtual bool        hasBarGraph()  { return false; }
00641 
00649     virtual YWidget *   createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00650                                             YCPString label,
00651                                             YColor foreground, YColor background,
00652                                             int margin );
00653     virtual bool        hasColoredLabel() { return false; }
00654 
00655     
00659     virtual YWidget *   createDate( YWidget *parent,
00660                                     YWidgetOpt & opt, 
00661                                     const YCPString & label,
00662                                     const YCPString & date );
00663     virtual bool        hasDate() { return false; }
00664 
00665     
00669     virtual YWidget *   createTime( YWidget *parent,
00670                                     YWidgetOpt & opt,   
00671                                     const YCPString & label,
00672                                     const YCPString & time );
00673     virtual bool        hasTime() { return false; }
00674 
00675 
00683     virtual YWidget *   createDumbTab( YWidget *parent, YWidgetOpt & opt );
00684     virtual bool        hasDumbTab() { return false; }
00685 
00686 
00694     virtual YWidget *   createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00695                                                   bool horizontal, const YCPList & maxValues );
00696     virtual bool        hasMultiProgressMeter() { return false; }
00697 
00698 
00706     virtual YWidget *   createSlider( YWidget *         parent,
00707                                       YWidgetOpt &      opt,
00708                                       const YCPString & label,
00709                                       int               minValue,
00710                                       int               maxValue,
00711                                       int               initialValue );
00712     virtual bool        hasSlider() { return false; }
00713 
00735     virtual YWidget *createPartitionSplitter( YWidget *         parent,
00736                                               YWidgetOpt &      opt,
00737                                               int               usedSize,
00738                                               int               totalFreeSize,
00739                                               int               newPartSize,
00740                                               int               minNewPartSize,
00741                                               int               minFreeSize,
00742                                               const YCPString & usedLabel,
00743                                               const YCPString & freeLabel,
00744                                               const YCPString & newPartLabel,
00745                                               const YCPString & freeFieldLabel,
00746                                               const YCPString & newPartFieldLabel );
00747     
00748     virtual bool        hasPartitionSplitter()  { return false; }
00749 
00750 
00754     virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00755                                    const YCPValue & backButtonId,       const YCPString & backButtonLabel,
00756                                    const YCPValue & abortButtonId,      const YCPString & abortButtonLabel,
00757                                    const YCPValue & nextButtonId,       const YCPString & nextButtonLabel  );
00758     
00759     virtual bool        hasWizard() { return false; }
00760 
00761     
00767     virtual YCPValue setLanguage( const YCPTerm & term );
00768 
00769 
00775     virtual YCPValue setConsoleFont( const YCPString & console_magic,
00776                                      const YCPString & font,
00777                                      const YCPString & screen_map,
00778                                      const YCPString & unicode_map,
00779                                      const YCPString & encoding );
00780 
00781     virtual YCPValue setKeyboard();
00782 
00787     virtual int  getDisplayWidth()              { return -1; }
00788     virtual int  getDisplayHeight()             { return -1; }
00789     virtual int  getDisplayDepth()              { return -1; }
00790     virtual long getDisplayColors()             { return -1; }
00791     virtual int  getDefaultWidth()              { return -1; }
00792     virtual int  getDefaultHeight()             { return -1; }
00793     virtual bool textMode()                     { return true; }
00794     virtual bool hasImageSupport()              { return false; }
00795     virtual bool hasLocalImageSupport()         { return true;  }
00796     virtual bool hasAnimationSupport()          { return false; }
00797     virtual bool hasIconSupport()               { return false; }
00798     virtual bool hasFullUtf8Support()           { return false; }
00799     virtual bool richTextSupportsTable()        { return false; }
00800 
00805     virtual void busyCursor();
00806 
00811     virtual void normalCursor();
00812 
00817     virtual void redrawScreen();
00818 
00823     virtual void makeScreenShot( string filename );
00824 
00825 
00832     virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00833 
00834 
00848     virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00849                                               const YCPString & headline ) = 0;
00850 
00866     virtual YCPValue askForExistingFile( const YCPString & startWith,
00867                                          const YCPString & filter,
00868                                          const YCPString & headline ) = 0;
00869 
00886     virtual YCPValue askForSaveFileName( const YCPString & startWith,
00887                                          const YCPString & filter,
00888                                          const YCPString & headline ) = 0;
00889 
00890 
00891 
00892     YCPValue callback           ( const YCPValue & value );
00893 
00897     YCPValue evaluateLocale( const YCPLocale & );
00898 
00904     void recordMacro( string filename );
00905 
00910     void stopRecordMacro();
00911 
00916     void playMacro( string filename );
00917 
00921     bool recordingMacro()       { return macroRecorder != 0;    }
00922 
00926     bool playingMacro()         { return macroPlayer != 0;      }
00927 
00928 
00929 protected:
00934     void terminateUIThread();
00935 
00936 
00940     void createUIThread();
00941     friend void *start_ui_thread( void *ui_int );
00942 
00947     void signalUIThread();
00948 
00953     bool waitForUIThread();
00954 
00959     void signalYCPThread();
00960 
00965     bool waitForYCPThread();
00966 
00970     YEvent * filterInvalidEvents( YEvent * event );
00971 
00991     YCPValue doUserInput( const char *  builtin_name,
00992                           long          timeout_millisec,
00993                           bool          wait,
00994                           bool          detailed );
00995 
00996     
01000     YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01001 
01002 
01016     YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01017 
01018 
01027     YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01028                                  const YCPTerm & term, const YCPList & optList, int argnr,
01029                                  YRadioButtonGroup *rbg );
01030 
01031 
01036     YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01037                           const YCPTerm & term, const YCPList & optList, int argnr,
01038                           bool hstretchable, bool vstretchable );
01039 
01046     YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01047                             const YCPTerm & term, const YCPList & optList, int argnr,
01048                             bool horizontal, bool vertical );
01049 
01054     YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01055                           const YCPTerm & term, const YCPList & optList, int argnr,
01056                           YRadioButtonGroup *rbg );
01057 
01063     YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01064                            const YCPTerm & term, const YCPList & optList, int argnr,
01065                            YRadioButtonGroup *rbg, YUIDimension dim );
01066 
01074     YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01075                               const YCPTerm & term, const YCPList & optList, int argnr,
01076                               YRadioButtonGroup *rbg,
01077                               YAlignmentType halign, YAlignmentType valign );
01078 
01079 
01087     YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01088                            const YCPTerm & term, const YCPList & optList, int argnr,
01089                            YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01090 
01097     YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01098                          const YCPTerm & term, const YCPList & optList, int argnr,
01099                          YRadioButtonGroup *rbg, YUIDimension dim );
01100 
01107     YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01108                           const YCPTerm & term, const YCPList & optList, int argnr,
01109                           bool heading );
01110 
01111     YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01112                           const YCPTerm & term, const YCPList & optList, int argnr);
01113     
01114     YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01115                           const YCPTerm & term, const YCPList & optList, int argnr);
01116 
01121     YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01122                              const YCPTerm & term, const YCPList & optList, int argnr );
01123 
01124 
01129     YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01130                             const YCPTerm & term, const YCPList & optList, int argnr );
01131 
01136     YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01137                                const YCPTerm & term, const YCPList & optList, int argnr,
01138                                bool isIconButton );
01139 
01144     YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01145                                const YCPTerm & term, const YCPList & optList, int argnr );
01146 
01151     YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01152                              const YCPTerm & term, const YCPList & optList, int argnr );
01153 
01158     YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01159                                 const YCPTerm & term, const YCPList & optList, int argnr,
01160                                 YRadioButtonGroup *rbg );
01161 
01166     YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01167                                      const YCPTerm & term, const YCPList & optList, int argnr,
01168                                      YRadioButtonGroup *rbg );
01169 
01176     YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01177                               const YCPTerm & term, const YCPList & optList, int argnr,
01178                               bool password );
01179 
01184     YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01185                                   const YCPTerm & term, const YCPList & optList, int argnr );
01186 
01191     YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01192                                  const YCPTerm & term, const YCPList & optList, int argnr );
01193 
01198     YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01199                                       const YCPTerm & term, const YCPList & optList, int argnr );
01200 
01205     YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01206                              const YCPTerm & term, const YCPList & optList, int argnr );
01207 
01212     YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01213                          const YCPTerm & term, const YCPList & optList, int argnr );
01214 
01219     YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01220                           const YCPTerm & term, const YCPList & optList, int argnr );
01221 
01226     YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01227                                 const YCPTerm & term, const YCPList & optList, int argnr );
01228 
01233     YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01234                           const YCPTerm & term, const YCPList & optList, int argnr );
01235 
01240     YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01241                              const YCPList & optList, int argnr );
01242 
01247     YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01248                                     const YCPList & optList, int argnr );
01249 
01254     YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01255                                const YCPList & optList, int argnr );
01256 
01261     YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01262                            const YCPList & optList, int argnr );
01263     
01268     YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01269                                        const YCPTerm & term, const YCPList & optList, int argnr );
01270 
01275     YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01276                                      const YCPList & optList, int argnr );
01277 
01282     YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01283                              const YCPList & optList, int argnr );
01284 
01289     YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01290                                  const YCPList & optList, int argnr );
01291 
01296     YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01297                             const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01298 
01303     YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01304                                         const YCPList & optList, int argnr, bool horizontal );
01309     YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01310                            const YCPList & optList, int argnr );
01311 
01316     YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01317                                       const YCPList & optList, int argnr );
01318 
01319 
01320 
01328     YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01329 
01341     YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01342 
01348     void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01349 
01356     void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01357 
01361     void registerDialog( YDialog * );
01362 
01366     void removeDialog();
01367 
01374     bool checkId( const YCPValue & val, bool complain = true ) const;
01375 
01381     bool isSymbolOrId( const YCPValue & val ) const;
01382 
01387     YCPValue getId( const YCPValue & v ) const;
01388 
01392     void deleteMacroRecorder();
01393 
01397     void deleteMacroPlayer();
01398 
01402     void playNextMacroBlock();
01403 
01407     typedef vector<YDialog *> dialogstack_type;
01408 
01413     dialogstack_type dialogstack;
01414 
01418     long long id_counter;
01419 
01423     bool with_threads;
01424 
01428     pthread_t ui_thread;
01429 
01437     YUIBuiltinCallData _builtinCallData;
01438 
01444     int pipe_to_ui[2];
01445 
01451     int pipe_from_ui[2];
01452 
01459     bool terminate_ui_thread;
01460 
01464     string _moduleName;
01465 
01469     string _productName;
01470 
01474     YMacroRecorder *macroRecorder;
01475 
01479     YMacroPlayer *macroPlayer;
01480 
01484     deque<YCPValue> fakeUserInputQueue;
01485 
01489     YCPMap default_fkeys;
01490 
01495     bool _events_blocked;
01496 
01501     static bool _reverseLayout;
01502 
01506     Y2Component * _callback;
01507 };
01508 
01509 #endif // YUI_h

Generated on Tue Mar 22 11:31:37 2005 for yast2-core by  doxygen 1.4.1