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   Authors:      Mathias Kettner <kettner@suse.de>
00016                 Stefan Hundhammer <sh@suse.de>
00017                 
00018   Maintainer:   Stefan Hundhammer <sh@suse.de>
00019 
00020 /-*/
00021 
00022 #ifndef YUI_h
00023 #define YUI_h
00024 
00025 #include <pthread.h>
00026 #include <deque>
00027 #include <ycp/YCPString.h>
00028 #include <ycp/YCPVoid.h>
00029 #include <ycp/YCPTerm.h>
00030 #include <ycp/YCPInteger.h>
00031 #include <ycp/YCPMap.h>
00032 #include <ycp/YCPBoolean.h>
00033 #include <ycp/YCPByteblock.h>
00034 
00035 #include "YWidget.h"
00036 #include "YAlignment.h"
00037 
00038 
00039 using std::deque;
00040 using std::string;
00041 
00042 class YContainerWidget;
00043 class YEvent;
00044 class YDialog;
00045 class YMacroPlayer;
00046 class YMacroRecorder;
00047 class YMenu;
00048 class YMenuButton;
00049 class YMultiSelectionBox;
00050 class YRadioButtonGroup;
00051 class YTree;
00052 class YTreeItem;
00053 class Y2Component;
00054 
00055 
00056 typedef struct
00057 {
00058     int red;
00059     int green;
00060     int blue;
00061 } YColor;
00062 
00063 struct  YUIBuiltinCallData
00064 {
00065     void *      function;
00066     int         argc;
00067     YCPValue *  argv;
00068     YCPValue    result;
00069 
00070     YUIBuiltinCallData()
00071         : result( YCPVoid() )
00072     {
00073         function        = 0;
00074         argc            = 0;
00075         argv            = 0;
00076     }
00077 };
00078 
00079 
00096 class YUI
00097 {
00098 protected:
00102     YUI( bool with_threads );
00103 
00104 
00105 public:
00106 
00110     virtual ~YUI();
00111 
00112 
00116     static YUI * ui() { return _yui; }
00117 
00118 
00122     YDialog *currentDialog() const;
00123 
00124 
00133     virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00134 
00141     void unblockEvents() { blockEvents( false ); }
00142 
00148     virtual bool eventsBlocked() const { return _events_blocked; }
00149 
00154     void topmostConstructorHasFinished();
00155 
00164     virtual void internalError( const char *msg );
00165 
00169     static int Recode( const string & str,
00170                        const string & from,
00171                        const string & to,
00172                        string & outstr );
00173 
00177     int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00178 
00182     bool parseRgb( const YCPValue & val, YColor *color, bool complain );
00183 
00194     YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00195 
00199     YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00200 
00209     YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00210 
00219     YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00220 
00226     int defaultFunctionKey( YCPString label );
00227 
00235     string productName() const { return _productName; }
00236 
00243     virtual long deviceUnits( YUIDimension dim, float layout_units );
00244 
00251     virtual float layoutUnits( YUIDimension dim, long device_units );
00252 
00257     static bool reverseLayout() { return _reverseLayout; }
00258 
00262     static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00263 
00269     YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00270 
00275     static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00276 
00280     void setCallback( Y2Component * callback ) { _callback = callback; }
00281 
00285     Y2Component * getCallback() const { return _callback; }
00286 
00291     YCPValue evaluateAskForExistingDirectory            ( const YCPString& startDir, const YCPString& headline );
00292     YCPValue evaluateAskForExistingFile                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00293     YCPValue evaluateAskForSaveFileName                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00294     void evaluateBusyCursor                             ();
00295     void evaluateBeep                                   ();
00296     YCPValue evaluateChangeWidget                       ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00297     void evaluateCheckShortcuts                         ();
00298     YCPValue evaluateCollectUserInput                   ();
00299     YCPValue evaluateCollectUserInput                   ( const YCPTerm & widgetId );
00300     YCPValue evaluateCloseDialog                        ();
00301     void evaluateDumpWidgetTree                         ();
00302     void evaluateFakeUserInput                          ( const YCPValue & next_input );
00303     YCPMap evaluateGetDisplayInfo                       ();
00304     YCPString evaluateGetLanguage                       ( const YCPBoolean & strip_encoding );
00305     YCPValue evaluateGetModulename                      ( const YCPTerm & term );
00306     YCPString evaluateGetProductName                    ();
00307     YCPString evaluateGlyph                             ( const YCPSymbol & symbol );
00308     YCPValue evaluateHasSpecialWidget                   ( const YCPSymbol & widget );
00309     void evaluateMakeScreenShot                         ( const YCPString & filename );
00310     void evaluateNormalCursor                           ();
00311     YCPBoolean evaluateOpenDialog                       ( const YCPTerm & term, const YCPTerm & opts = YCPNull() );
00312     void evaluatePlayMacro                              ( const YCPString & filename );
00313     void evaluatePostponeShortcutCheck                  ();
00314     YCPValue evaluateQueryWidget                        ( const YCPValue& value_id, const YCPValue& property );
00315     void evaluateRecalcLayout                           ();
00316     YCPValue evaluateRecode                             ( const YCPString & from, const YCPString & to, const YCPString & text );
00317     void evaluateRecordMacro                            ( const YCPString & filename );
00318     void evaluateRedrawScreen                           ();
00319     YCPBoolean evaluateReplaceWidget                    ( const YCPValue & value_id, const YCPTerm & term );
00320     YCPValue evaluateRunPkgSelection                    ( const YCPValue & value_id );
00321     void evaluateSetConsoleFont                         ( const YCPString& magic,
00322                                                           const YCPString& font,
00323                                                           const YCPString& screen_map,
00324                                                           const YCPString& unicode_map,
00325                                                           const YCPString& encoding );
00326     void evaluateSetKeyboard                            ();
00327     YCPInteger evaluateRunInTerminal                    ( const YCPString& module);
00328     YCPBoolean evaluateSetFocus                         ( const YCPValue & value_id );
00329     void evaluateSetFunctionKeys                        ( const YCPMap & new_keys );
00330     void evaluateSetLanguage                            ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00331     void evaluateSetModulename                          ( const YCPString & name );
00332     void evaluateSetProductName                         ( const YCPString & name );
00333     void evaluateStopRecordMacro                        ();
00334     YCPBoolean evaluateWidgetExists                     ( const YCPValue & value_id );
00335 
00336     YCPValue evaluateUserInput                          ();
00337     YCPValue evaluateTimeoutUserInput                   ( const YCPInteger & timeout );
00338     YCPValue evaluateWaitForEvent                       ( const YCPInteger & timeout = YCPNull() );
00339     YCPValue evaluateWizardCommand                      ( const YCPTerm & command );
00340     YCPValue evaluatePollInput                          ();
00341 
00350     void uiThreadMainLoop();
00351 
00358     static bool checkId( const YCPValue & val, bool complain = true );
00359 
00364     static YCPValue getId( const YCPValue & v );
00365 
00366 
00367 protected:
00368 
00369 
00370 
00371 
00372     const char *moduleName();
00373 
00374     // Event handling, execution flow
00375 
00390     virtual void idleLoop( int fd_ycp );
00391 
00410     virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00411 
00426     virtual YEvent * pollInput() = 0;
00427 
00432     virtual void showDialog( YDialog *dialog );
00433 
00439     virtual void closeDialog( YDialog *dialog );
00440 
00441 
00450     virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00451 
00452 
00453     //
00454     // Widget creation functions - container widgets
00455     //
00456 
00461     virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00462 
00466     virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00467 
00471     virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00472 
00476     virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00477                                                YAlignmentType halign,
00478                                                YAlignmentType valign ) = 0;
00479 
00483     virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00484 
00485 
00489     virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00490 
00494     virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00495 
00501     virtual YContainerWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00502 
00503 
00504     //
00505     // Widget creation functions - leaf widgets
00506     //
00507 
00511     virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00512 
00516     virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00517 
00524     virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00525 
00526 
00531     virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00532 
00533 
00540     virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00541                                     const YCPString & label, int visibleLines, int maxLines ) = 0;
00542 
00547     virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00548 
00553     virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00554 
00560     virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00561                                         const YCPString & label, bool checked ) = 0;
00562 
00568     virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00569 
00573     virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00574 
00578     virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00579 
00583     virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00584 
00588     virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00589 
00593     virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00594 
00598     virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00599 
00603     virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00604 
00608     virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00609                                         const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00610 
00614     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00615 
00619     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00620 
00624     virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00625                                      const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00626 
00633     virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00634 
00638     virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00639 
00640 
00648     virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00649     virtual bool     hasDummySpecialWidget() { return true; }
00650 
00658     virtual YWidget *   createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00659                                                 const YCPString & label,
00660                                                 const YCPString & filename,
00661                                                 int expectedSize );
00662 
00663     virtual bool        hasDownloadProgress() { return false; }
00664 
00672     virtual YWidget *   createBarGraph( YWidget *parent, YWidgetOpt & opt );
00673     virtual bool        hasBarGraph()  { return false; }
00674 
00682     virtual YWidget *   createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00683                                             YCPString label,
00684                                             YColor foreground, YColor background,
00685                                             int margin );
00686     virtual bool        hasColoredLabel() { return false; }
00687 
00688 
00692     virtual YWidget *   createDate( YWidget *parent,
00693                                     YWidgetOpt & opt,
00694                                     const YCPString & label,
00695                                     const YCPString & date );
00696     virtual bool        hasDate() { return false; }
00697 
00698 
00702     virtual YWidget *   createTime( YWidget *parent,
00703                                     YWidgetOpt & opt,
00704                                     const YCPString & label,
00705                                     const YCPString & time );
00706     virtual bool        hasTime() { return false; }
00707 
00708 
00716     virtual YWidget *   createDumbTab( YWidget *parent, YWidgetOpt & opt );
00717     virtual bool        hasDumbTab() { return false; }
00718 
00719 
00727     virtual YWidget *   createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00728                                                   bool horizontal, const YCPList & maxValues );
00729     virtual bool        hasMultiProgressMeter() { return false; }
00730 
00731 
00739     virtual YWidget *   createSlider( YWidget *         parent,
00740                                       YWidgetOpt &      opt,
00741                                       const YCPString & label,
00742                                       int               minValue,
00743                                       int               maxValue,
00744                                       int               initialValue );
00745     virtual bool        hasSlider() { return false; }
00746 
00768     virtual YWidget *createPartitionSplitter( YWidget *         parent,
00769                                               YWidgetOpt &      opt,
00770                                               int               usedSize,
00771                                               int               totalFreeSize,
00772                                               int               newPartSize,
00773                                               int               minNewPartSize,
00774                                               int               minFreeSize,
00775                                               const YCPString & usedLabel,
00776                                               const YCPString & freeLabel,
00777                                               const YCPString & newPartLabel,
00778                                               const YCPString & freeFieldLabel,
00779                                               const YCPString & newPartFieldLabel );
00780 
00781     virtual bool        hasPartitionSplitter()  { return false; }
00782 
00786     virtual YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt );
00787 
00788     virtual bool        hasPatternSelector() { return false; }
00789 
00790 
00794     virtual YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt );
00795 
00796     virtual bool        hasSimplePatchSelector() { return false; }
00797 
00798 
00802     virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00803                                    const YCPValue & backButtonId,       const YCPString & backButtonLabel,
00804                                    const YCPValue & abortButtonId,      const YCPString & abortButtonLabel,
00805                                    const YCPValue & nextButtonId,       const YCPString & nextButtonLabel  );
00806 
00807     virtual bool        hasWizard() { return false; }
00808 
00809 
00815     virtual YCPValue setLanguage( const YCPTerm & term );
00816 
00817 
00823     virtual YCPValue setConsoleFont( const YCPString & console_magic,
00824                                      const YCPString & font,
00825                                      const YCPString & screen_map,
00826                                      const YCPString & unicode_map,
00827                                      const YCPString & encoding );
00828 
00829     virtual YCPValue setKeyboard();
00830 
00831 
00838     virtual int runInTerminal( const YCPString & module );      
00839 
00844     virtual int  getDisplayWidth()              { return -1; }
00845     virtual int  getDisplayHeight()             { return -1; }
00846     virtual int  getDisplayDepth()              { return -1; }
00847     virtual long getDisplayColors()             { return -1; }
00848     virtual int  getDefaultWidth()              { return -1; }
00849     virtual int  getDefaultHeight()             { return -1; }
00850     virtual bool textMode()                     { return true; }
00851     virtual bool hasImageSupport()              { return false; }
00852     virtual bool hasLocalImageSupport()         { return true;  }
00853     virtual bool hasAnimationSupport()          { return false; }
00854     virtual bool hasIconSupport()               { return false; }
00855     virtual bool hasFullUtf8Support()           { return false; }
00856     virtual bool richTextSupportsTable()        { return false; }
00857     virtual bool leftHandedMouse()              { return false; }
00858 
00863     virtual void busyCursor();
00864 
00869     virtual void normalCursor();
00870 
00875     virtual void redrawScreen();
00876 
00881     virtual void makeScreenShot( string filename );
00882 
00889     virtual void beep();
00890 
00897     virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00898 
00899 
00913     virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00914                                               const YCPString & headline ) = 0;
00915 
00931     virtual YCPValue askForExistingFile( const YCPString & startWith,
00932                                          const YCPString & filter,
00933                                          const YCPString & headline ) = 0;
00934 
00951     virtual YCPValue askForSaveFileName( const YCPString & startWith,
00952                                          const YCPString & filter,
00953                                          const YCPString & headline ) = 0;
00954 
00955 
00956 
00957     YCPValue callback           ( const YCPValue & value );
00958 
00962     YCPValue evaluateLocale( const YCPLocale & );
00963 
00969     void recordMacro( string filename );
00970 
00975     void stopRecordMacro();
00976 
00981     void playMacro( string filename );
00982 
00986     bool recordingMacro()       { return macroRecorder != 0;    }
00987 
00991     bool playingMacro()         { return macroPlayer != 0;      }
00992 
00993 
00994 protected:
00999     void terminateUIThread();
01000 
01001 
01005     void createUIThread();
01006     friend void *start_ui_thread( void *ui_int );
01007 
01012     void signalUIThread();
01013 
01018     bool waitForUIThread();
01019 
01024     void signalYCPThread();
01025 
01030     bool waitForYCPThread();
01031 
01035     YEvent * filterInvalidEvents( YEvent * event );
01036 
01056     YCPValue doUserInput( const char *  builtin_name,
01057                           long          timeout_millisec,
01058                           bool          wait,
01059                           bool          detailed );
01060 
01061 
01065     YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01066 
01067 
01081     YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01082 
01083 
01092     YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01093                                  const YCPTerm & term, const YCPList & optList, int argnr,
01094                                  YRadioButtonGroup *rbg );
01095 
01096 
01101     YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01102                           const YCPTerm & term, const YCPList & optList, int argnr,
01103                           bool hstretchable, bool vstretchable );
01104 
01111     YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01112                             const YCPTerm & term, const YCPList & optList, int argnr,
01113                             bool horizontal, bool vertical );
01114 
01119     YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01120                           const YCPTerm & term, const YCPList & optList, int argnr,
01121                           YRadioButtonGroup *rbg );
01126     YWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt,
01127                                   const YCPTerm & term, const YCPList & optList, int argnr,
01128                                   YRadioButtonGroup *rbg );
01129 
01130 
01136     YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01137                            const YCPTerm & term, const YCPList & optList, int argnr,
01138                            YRadioButtonGroup *rbg, YUIDimension dim );
01139 
01147     YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01148                               const YCPTerm & term, const YCPList & optList, int argnr,
01149                               YRadioButtonGroup *rbg,
01150                               YAlignmentType halign, YAlignmentType valign );
01151 
01156     YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01157                               const YCPTerm & term, const YCPList & optList,
01158                               int argnr, YRadioButtonGroup * rbg );
01159 
01167     YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01168                             const YCPTerm & term, const YCPList & optList, int argnr,
01169                             YRadioButtonGroup * rbg,
01170                             bool hor, bool vert );
01171 
01179     YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01180                            const YCPTerm & term, const YCPList & optList, int argnr,
01181                            YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01182 
01189     YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01190                          const YCPTerm & term, const YCPList & optList, int argnr,
01191                          YRadioButtonGroup *rbg, YUIDimension dim );
01192 
01199     YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01200                           const YCPTerm & term, const YCPList & optList, int argnr,
01201                           bool heading );
01202 
01203     YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01204                           const YCPTerm & term, const YCPList & optList, int argnr);
01205 
01206     YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01207                           const YCPTerm & term, const YCPList & optList, int argnr);
01208 
01213     YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01214                              const YCPTerm & term, const YCPList & optList, int argnr );
01215 
01216 
01221     YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01222                             const YCPTerm & term, const YCPList & optList, int argnr );
01223 
01228     YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01229                                const YCPTerm & term, const YCPList & optList, int argnr,
01230                                bool isIconButton );
01231 
01236     YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01237                                const YCPTerm & term, const YCPList & optList, int argnr );
01238 
01243     YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01244                              const YCPTerm & term, const YCPList & optList, int argnr );
01245 
01250     YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01251                                 const YCPTerm & term, const YCPList & optList, int argnr,
01252                                 YRadioButtonGroup *rbg );
01253 
01258     YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01259                                      const YCPTerm & term, const YCPList & optList, int argnr,
01260                                      YRadioButtonGroup *rbg );
01261 
01268     YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01269                               const YCPTerm & term, const YCPList & optList, int argnr,
01270                               bool password );
01271 
01276     YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01277                                   const YCPTerm & term, const YCPList & optList, int argnr );
01278 
01283     YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01284                                  const YCPTerm & term, const YCPList & optList, int argnr );
01285 
01290     YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01291                                       const YCPTerm & term, const YCPList & optList, int argnr );
01292 
01297     YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01298                              const YCPTerm & term, const YCPList & optList, int argnr );
01299 
01304     YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01305                          const YCPTerm & term, const YCPList & optList, int argnr );
01306 
01311     YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01312                           const YCPTerm & term, const YCPList & optList, int argnr );
01313 
01318     YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01319                                 const YCPTerm & term, const YCPList & optList, int argnr );
01320 
01325     YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01326                           const YCPTerm & term, const YCPList & optList, int argnr );
01327 
01332     YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01333                              const YCPList & optList, int argnr );
01334 
01339     YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01340                                     const YCPList & optList, int argnr );
01341 
01346     YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01347                                const YCPList & optList, int argnr );
01348 
01353     YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01354                            const YCPList & optList, int argnr );
01355 
01360     YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01361                                        const YCPTerm & term, const YCPList & optList, int argnr );
01362 
01367     YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01368                                      const YCPList & optList, int argnr );
01369 
01374     YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01375                              const YCPList & optList, int argnr );
01376 
01381     YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01382                                  const YCPList & optList, int argnr );
01383 
01388     YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01389                             const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01390 
01395     YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01396                                         const YCPList & optList, int argnr, bool horizontal );
01401     YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01402                            const YCPList & optList, int argnr );
01403 
01408     YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01409                                       const YCPList & optList, int argnr );
01410 
01415     YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01416                                     const YCPList & optList, int argnr );
01417 
01422     YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01423                                         const YCPList & optList, int argnr );
01424 
01425 
01433     YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01434 
01446     YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01447 
01453     void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01454 
01461     void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01462 
01466     void registerDialog( YDialog * );
01467 
01471     void removeDialog();
01472 
01478     bool isSymbolOrId( const YCPValue & val ) const;
01479 
01480 
01484     void deleteMacroRecorder();
01485 
01489     void deleteMacroPlayer();
01490 
01494     void playNextMacroBlock();
01495 
01499     typedef vector<YDialog *> dialogstack_type;
01500 
01505     dialogstack_type dialogstack;
01506 
01510     long long id_counter;
01511 
01515     bool with_threads;
01516 
01520     pthread_t ui_thread;
01521 
01529     YUIBuiltinCallData _builtinCallData;
01530 
01536     int pipe_to_ui[2];
01537 
01543     int pipe_from_ui[2];
01544 
01551     bool terminate_ui_thread;
01552 
01556     string _moduleName;
01557 
01561     string _productName;
01562 
01566     YMacroRecorder *macroRecorder;
01567 
01571     YMacroPlayer *macroPlayer;
01572 
01576     deque<YCPValue> fakeUserInputQueue;
01577 
01581     YCPMap default_fkeys;
01582 
01587     bool _events_blocked;
01588 
01593     static bool _reverseLayout;
01594 
01598     Y2Component * _callback;
01599 
01600 
01604     static YUI * _yui;
01605 
01606 };
01607 
01608 #endif // YUI_h

Generated on Tue Apr 22 00:09:35 2008 for yast2-core by  doxygen 1.4.6