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 
00110     
00114     static YUI * ui() { return _yui; }
00115 
00116 
00120     YDialog *currentDialog() const;
00121 
00122 
00131     virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00132 
00139     void unblockEvents() { blockEvents( false ); }
00140 
00146     virtual bool eventsBlocked() const { return _events_blocked; }
00147 
00152     void topmostConstructorHasFinished();
00153 
00162     virtual void internalError( const char *msg );
00163 
00167     static int Recode( const string & str,
00168                        const string & from,
00169                        const string & to,
00170                        string & outstr );
00171 
00175     int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00176 
00180     bool YUI::parseRgb( const YCPValue & val, YColor *color, bool complain );
00181 
00192     YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00193 
00197     YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00198 
00207     YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00208 
00217     YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00218 
00222     YCPBoolean evaluateReplaceWidget( const YCPValue & value_id, const YCPTerm & term );
00223 
00229     int defaultFunctionKey( YCPString label );
00230 
00238     string productName() const { return _productName; }
00239 
00246     virtual long deviceUnits( YUIDimension dim, float layout_units );
00247 
00254     virtual float layoutUnits( YUIDimension dim, long device_units );
00255 
00260     static bool reverseLayout() { return _reverseLayout; }
00261 
00265     static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00266 
00272     YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00273 
00278     static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00279 
00283     void setCallback( Y2Component * callback ) { _callback = callback; }
00284     
00288     Y2Component * getCallback() const { return _callback; }
00289 
00294     YCPValue evaluateAskForExistingDirectory            ( const YCPString& startDir, const YCPString& headline );
00295     YCPValue evaluateAskForExistingFile                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00296     YCPValue evaluateAskForSaveFileName                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00297     void evaluateBusyCursor                             ();
00298     YCPValue evaluateChangeWidget                       ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00299     void evaluateCheckShortcuts                         ();
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 & term = 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     YCPValue evaluateRunPkgSelection                    ( const YCPValue & value_id );
00320     void evaluateSetConsoleFont                         ( const YCPString& magic, 
00321                                                           const YCPString& font,
00322                                                           const YCPString& screen_map, 
00323                                                           const YCPString& unicode_map, 
00324                                                           const YCPString& encoding );
00325     void evaluateSetKeyboard                            ();
00326     YCPBoolean evaluateSetFocus                         ( const YCPValue & value_id );
00327     void evaluateSetFunctionKeys                        ( const YCPMap & new_keys );
00328     void evaluateSetLanguage                            ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00329     void evaluateSetModulename                          ( const YCPString & name );
00330     void evaluateSetProductName                         ( const YCPString & name );
00331     void evaluateStopRecordMacro                        ();
00332     YCPBoolean evaluateWidgetExists                     ( const YCPValue & value_id );
00333 
00334     YCPValue evaluateUserInput                          ();
00335     YCPValue evaluateTimeoutUserInput                   ( const YCPInteger & timeout );
00336     YCPValue evaluateWaitForEvent                       ( const YCPInteger & timeout = YCPNull() );
00337     YCPValue evaluateWizardCommand                      ( const YCPTerm & command );
00338     YCPValue evaluatePollInput                          ();
00339 
00348     void uiThreadMainLoop();
00349 
00356     static bool checkId( const YCPValue & val, bool complain = true );
00357 
00362     static YCPValue getId( const YCPValue & v );
00363 
00364 
00365 protected:
00366 
00367 
00368 
00369 
00370     const char *moduleName();
00371 
00372     // Event handling, execution flow
00373 
00388     virtual void idleLoop( int fd_ycp );
00389 
00408     virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00409 
00424     virtual YEvent * pollInput() = 0;
00425 
00430     virtual void showDialog( YDialog *dialog );
00431 
00437     virtual void closeDialog( YDialog *dialog );
00438 
00439 
00448     virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00449 
00450 
00451     //
00452     // Widget creation functions - container widgets
00453     //
00454 
00459     virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00460 
00464     virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00465 
00469     virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00470 
00474     virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00475                                                YAlignmentType halign,
00476                                                YAlignmentType valign ) = 0;
00477 
00481     virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00482 
00483 
00487     virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00488 
00492     virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00493 
00494 
00495 
00496     //
00497     // Widget creation functions - leaf widgets
00498     //
00499 
00503     virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00504 
00508     virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00509 
00516     virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00517 
00518     
00523     virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00524 
00525 
00532     virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00533                                     const YCPString & label, int visibleLines, int maxLines ) = 0;
00534 
00539     virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00540 
00545     virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00546 
00552     virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00553                                         const YCPString & label, bool checked ) = 0;
00554 
00560     virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00561 
00565     virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00566 
00570     virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00571 
00575     virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00576 
00580     virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00581 
00585     virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00586 
00590     virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00591 
00595     virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00596 
00600     virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00601                                         const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00602 
00606     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00607 
00611     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00612 
00616     virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00617                                      const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00618 
00625     virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00626 
00630     virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00631 
00632 
00640     virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00641     virtual bool     hasDummySpecialWidget() { return true; }
00642 
00650     virtual YWidget *   createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00651                                                 const YCPString & label,
00652                                                 const YCPString & filename,
00653                                                 int expectedSize );
00654     
00655     virtual bool        hasDownloadProgress() { return false; }
00656 
00664     virtual YWidget *   createBarGraph( YWidget *parent, YWidgetOpt & opt );
00665     virtual bool        hasBarGraph()  { return false; }
00666 
00674     virtual YWidget *   createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00675                                             YCPString label,
00676                                             YColor foreground, YColor background,
00677                                             int margin );
00678     virtual bool        hasColoredLabel() { return false; }
00679 
00680     
00684     virtual YWidget *   createDate( YWidget *parent,
00685                                     YWidgetOpt & opt, 
00686                                     const YCPString & label,
00687                                     const YCPString & date );
00688     virtual bool        hasDate() { return false; }
00689 
00690     
00694     virtual YWidget *   createTime( YWidget *parent,
00695                                     YWidgetOpt & opt,   
00696                                     const YCPString & label,
00697                                     const YCPString & time );
00698     virtual bool        hasTime() { return false; }
00699 
00700 
00708     virtual YWidget *   createDumbTab( YWidget *parent, YWidgetOpt & opt );
00709     virtual bool        hasDumbTab() { return false; }
00710 
00711 
00719     virtual YWidget *   createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00720                                                   bool horizontal, const YCPList & maxValues );
00721     virtual bool        hasMultiProgressMeter() { return false; }
00722 
00723 
00731     virtual YWidget *   createSlider( YWidget *         parent,
00732                                       YWidgetOpt &      opt,
00733                                       const YCPString & label,
00734                                       int               minValue,
00735                                       int               maxValue,
00736                                       int               initialValue );
00737     virtual bool        hasSlider() { return false; }
00738 
00760     virtual YWidget *createPartitionSplitter( YWidget *         parent,
00761                                               YWidgetOpt &      opt,
00762                                               int               usedSize,
00763                                               int               totalFreeSize,
00764                                               int               newPartSize,
00765                                               int               minNewPartSize,
00766                                               int               minFreeSize,
00767                                               const YCPString & usedLabel,
00768                                               const YCPString & freeLabel,
00769                                               const YCPString & newPartLabel,
00770                                               const YCPString & freeFieldLabel,
00771                                               const YCPString & newPartFieldLabel );
00772     
00773     virtual bool        hasPartitionSplitter()  { return false; }
00774 
00775 
00779     virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00780                                    const YCPValue & backButtonId,       const YCPString & backButtonLabel,
00781                                    const YCPValue & abortButtonId,      const YCPString & abortButtonLabel,
00782                                    const YCPValue & nextButtonId,       const YCPString & nextButtonLabel  );
00783     
00784     virtual bool        hasWizard() { return false; }
00785 
00786     
00792     virtual YCPValue setLanguage( const YCPTerm & term );
00793 
00794 
00800     virtual YCPValue setConsoleFont( const YCPString & console_magic,
00801                                      const YCPString & font,
00802                                      const YCPString & screen_map,
00803                                      const YCPString & unicode_map,
00804                                      const YCPString & encoding );
00805 
00806     virtual YCPValue setKeyboard();
00807 
00812     virtual int  getDisplayWidth()              { return -1; }
00813     virtual int  getDisplayHeight()             { return -1; }
00814     virtual int  getDisplayDepth()              { return -1; }
00815     virtual long getDisplayColors()             { return -1; }
00816     virtual int  getDefaultWidth()              { return -1; }
00817     virtual int  getDefaultHeight()             { return -1; }
00818     virtual bool textMode()                     { return true; }
00819     virtual bool hasImageSupport()              { return false; }
00820     virtual bool hasLocalImageSupport()         { return true;  }
00821     virtual bool hasAnimationSupport()          { return false; }
00822     virtual bool hasIconSupport()               { return false; }
00823     virtual bool hasFullUtf8Support()           { return false; }
00824     virtual bool richTextSupportsTable()        { return false; }
00825 
00830     virtual void busyCursor();
00831 
00836     virtual void normalCursor();
00837 
00842     virtual void redrawScreen();
00843 
00848     virtual void makeScreenShot( string filename );
00849 
00850 
00857     virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00858 
00859 
00873     virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00874                                               const YCPString & headline ) = 0;
00875 
00891     virtual YCPValue askForExistingFile( const YCPString & startWith,
00892                                          const YCPString & filter,
00893                                          const YCPString & headline ) = 0;
00894 
00911     virtual YCPValue askForSaveFileName( const YCPString & startWith,
00912                                          const YCPString & filter,
00913                                          const YCPString & headline ) = 0;
00914 
00915 
00916 
00917     YCPValue callback           ( const YCPValue & value );
00918 
00922     YCPValue evaluateLocale( const YCPLocale & );
00923 
00929     void recordMacro( string filename );
00930 
00935     void stopRecordMacro();
00936 
00941     void playMacro( string filename );
00942 
00946     bool recordingMacro()       { return macroRecorder != 0;    }
00947 
00951     bool playingMacro()         { return macroPlayer != 0;      }
00952 
00953 
00954 protected:
00959     void terminateUIThread();
00960 
00961 
00965     void createUIThread();
00966     friend void *start_ui_thread( void *ui_int );
00967 
00972     void signalUIThread();
00973 
00978     bool waitForUIThread();
00979 
00984     void signalYCPThread();
00985 
00990     bool waitForYCPThread();
00991 
00995     YEvent * filterInvalidEvents( YEvent * event );
00996 
01016     YCPValue doUserInput( const char *  builtin_name,
01017                           long          timeout_millisec,
01018                           bool          wait,
01019                           bool          detailed );
01020 
01021     
01025     YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01026 
01027 
01041     YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01042 
01043 
01052     YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01053                                  const YCPTerm & term, const YCPList & optList, int argnr,
01054                                  YRadioButtonGroup *rbg );
01055 
01056 
01061     YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01062                           const YCPTerm & term, const YCPList & optList, int argnr,
01063                           bool hstretchable, bool vstretchable );
01064 
01071     YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01072                             const YCPTerm & term, const YCPList & optList, int argnr,
01073                             bool horizontal, bool vertical );
01074 
01079     YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01080                           const YCPTerm & term, const YCPList & optList, int argnr,
01081                           YRadioButtonGroup *rbg );
01082 
01088     YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01089                            const YCPTerm & term, const YCPList & optList, int argnr,
01090                            YRadioButtonGroup *rbg, YUIDimension dim );
01091 
01099     YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01100                               const YCPTerm & term, const YCPList & optList, int argnr,
01101                               YRadioButtonGroup *rbg,
01102                               YAlignmentType halign, YAlignmentType valign );
01103 
01108     YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01109                               const YCPTerm & term, const YCPList & optList,
01110                               int argnr, YRadioButtonGroup * rbg );
01111 
01119     YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01120                             const YCPTerm & term, const YCPList & optList, int argnr,
01121                             YRadioButtonGroup * rbg,
01122                             bool hor, bool vert );
01123 
01131     YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01132                            const YCPTerm & term, const YCPList & optList, int argnr,
01133                            YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01134 
01141     YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01142                          const YCPTerm & term, const YCPList & optList, int argnr,
01143                          YRadioButtonGroup *rbg, YUIDimension dim );
01144 
01151     YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01152                           const YCPTerm & term, const YCPList & optList, int argnr,
01153                           bool heading );
01154 
01155     YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01156                           const YCPTerm & term, const YCPList & optList, int argnr);
01157     
01158     YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01159                           const YCPTerm & term, const YCPList & optList, int argnr);
01160 
01165     YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01166                              const YCPTerm & term, const YCPList & optList, int argnr );
01167 
01168 
01173     YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01174                             const YCPTerm & term, const YCPList & optList, int argnr );
01175 
01180     YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01181                                const YCPTerm & term, const YCPList & optList, int argnr,
01182                                bool isIconButton );
01183 
01188     YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01189                                const YCPTerm & term, const YCPList & optList, int argnr );
01190 
01195     YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01196                              const YCPTerm & term, const YCPList & optList, int argnr );
01197 
01202     YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01203                                 const YCPTerm & term, const YCPList & optList, int argnr,
01204                                 YRadioButtonGroup *rbg );
01205 
01210     YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01211                                      const YCPTerm & term, const YCPList & optList, int argnr,
01212                                      YRadioButtonGroup *rbg );
01213 
01220     YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01221                               const YCPTerm & term, const YCPList & optList, int argnr,
01222                               bool password );
01223 
01228     YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01229                                   const YCPTerm & term, const YCPList & optList, int argnr );
01230 
01235     YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01236                                  const YCPTerm & term, const YCPList & optList, int argnr );
01237 
01242     YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01243                                       const YCPTerm & term, const YCPList & optList, int argnr );
01244 
01249     YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01250                              const YCPTerm & term, const YCPList & optList, int argnr );
01251 
01256     YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01257                          const YCPTerm & term, const YCPList & optList, int argnr );
01258 
01263     YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01264                           const YCPTerm & term, const YCPList & optList, int argnr );
01265 
01270     YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01271                                 const YCPTerm & term, const YCPList & optList, int argnr );
01272 
01277     YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01278                           const YCPTerm & term, const YCPList & optList, int argnr );
01279 
01284     YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01285                              const YCPList & optList, int argnr );
01286 
01291     YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01292                                     const YCPList & optList, int argnr );
01293 
01298     YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01299                                const YCPList & optList, int argnr );
01300 
01305     YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01306                            const YCPList & optList, int argnr );
01307     
01312     YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01313                                        const YCPTerm & term, const YCPList & optList, int argnr );
01314 
01319     YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01320                                      const YCPList & optList, int argnr );
01321 
01326     YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01327                              const YCPList & optList, int argnr );
01328 
01333     YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01334                                  const YCPList & optList, int argnr );
01335 
01340     YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01341                             const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01342 
01347     YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01348                                         const YCPList & optList, int argnr, bool horizontal );
01353     YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01354                            const YCPList & optList, int argnr );
01355 
01360     YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01361                                       const YCPList & optList, int argnr );
01362 
01363 
01364 
01372     YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01373 
01385     YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01386 
01392     void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01393 
01400     void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01401 
01405     void registerDialog( YDialog * );
01406 
01410     void removeDialog();
01411 
01417     bool isSymbolOrId( const YCPValue & val ) const;
01418 
01419 
01423     void deleteMacroRecorder();
01424 
01428     void deleteMacroPlayer();
01429 
01433     void playNextMacroBlock();
01434 
01438     typedef vector<YDialog *> dialogstack_type;
01439 
01444     dialogstack_type dialogstack;
01445 
01449     long long id_counter;
01450 
01454     bool with_threads;
01455 
01459     pthread_t ui_thread;
01460 
01468     YUIBuiltinCallData _builtinCallData;
01469 
01475     int pipe_to_ui[2];
01476 
01482     int pipe_from_ui[2];
01483 
01490     bool terminate_ui_thread;
01491 
01495     string _moduleName;
01496 
01500     string _productName;
01501 
01505     YMacroRecorder *macroRecorder;
01506 
01510     YMacroPlayer *macroPlayer;
01511 
01515     deque<YCPValue> fakeUserInputQueue;
01516 
01520     YCPMap default_fkeys;
01521 
01526     bool _events_blocked;
01527 
01532     static bool _reverseLayout;
01533 
01537     Y2Component * _callback;
01538 
01539     
01543     static YUI * _yui;
01544 
01545 };
01546 
01547 #endif // YUI_h

Generated on Wed Sep 14 10:34:29 2005 for yast2-core by  doxygen 1.4.4