00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "kstdaction.h"
00020
00021 #include <qtoolbutton.h>
00022 #include <qwhatsthis.h>
00023
00024 #include <kaboutdata.h>
00025 #include <kaction.h>
00026 #include <kapplication.h>
00027 #include <kdebug.h>
00028 #include <kglobal.h>
00029 #include <kiconloader.h>
00030 #include <klocale.h>
00031 #include <kstdaccel.h>
00032 #include <kmainwindow.h>
00033 #include "kstdaction_p.h"
00034
00035 namespace KStdAction
00036 {
00037
00038 QStringList stdNames()
00039 {
00040 return internal_stdNames();
00041 }
00042
00043 KAction* create( StdAction id, const char *name, const QObject *recvr, const char *slot, KActionCollection* parent )
00044 {
00045 KAction* pAction = 0;
00046 const KStdActionInfo* pInfo = infoPtr( id );
00047 kdDebug(125) << "KStdAction::create( " << id << "=" << (pInfo ? pInfo->psName : (const char*)0) << ", " << parent << ", " << name << " )" << endl;
00048 if( pInfo ) {
00049 QString sLabel, iconName = pInfo->psIconName;
00050 switch( id ) {
00051 case Back: sLabel = i18n("go back", "&Back");
00052 if (QApplication::reverseLayout() )
00053 iconName = "forward";
00054 break;
00055
00056 case Forward: sLabel = i18n("go forward", "&Forward");
00057 if (QApplication::reverseLayout() )
00058 iconName = "back";
00059 break;
00060
00061 case Home: sLabel = i18n("beginning (of line)", "&Home"); break;
00062 case Help: sLabel = i18n("show help", "&Help"); break;
00063 case AboutApp: iconName = kapp->miniIconName();
00064 case Preferences:
00065 case HelpContents:
00066 {
00067 const KAboutData *aboutData = KGlobal::instance()->aboutData();
00068 QString appName = (aboutData) ? aboutData->programName() : QString::fromLatin1(qApp->name());
00069 sLabel = i18n(pInfo->psLabel).arg(appName);
00070 }
00071 break;
00072 default: sLabel = i18n(pInfo->psLabel);
00073 }
00074
00075 if (QApplication::reverseLayout()){
00076 if (id == Prior) iconName = "next";
00077 if (id == Next ) iconName = "previous";
00078 }
00079
00080 KShortcut cut = KStdAccel::shortcut(pInfo->idAccel);
00081 switch( id ) {
00082 case OpenRecent:
00083 pAction = new KRecentFilesAction( sLabel, pInfo->psIconName, cut,
00084 recvr, slot,
00085 parent, (name) ? name : pInfo->psName );
00086 break;
00087 case ShowMenubar:
00088 case ShowToolbar:
00089 case ShowStatusbar:
00090 {
00091 KToggleAction *ret;
00092 ret = new KToggleAction( sLabel, pInfo->psIconName, cut,
00093 recvr, slot,
00094 parent, (name) ? name : pInfo->psName );
00095 ret->setChecked( true );
00096 pAction = ret;
00097 break;
00098 }
00099 case FullScreen:
00100 {
00101 KToggleFullScreenAction *ret;
00102 ret = new KToggleFullScreenAction( cut, recvr, slot,
00103 parent, NULL, (name) ? name : pInfo->psName );
00104 ret->setChecked( false );
00105 pAction = ret;
00106 break;
00107 }
00108 case PasteText:
00109 {
00110 KPasteTextAction *ret;
00111 ret = new KPasteTextAction(sLabel, iconName, cut,
00112 recvr, slot,
00113 parent, (name) ? name : pInfo->psName );
00114 pAction = ret;
00115 break;
00116 }
00117 default:
00118 pAction = new KAction( sLabel, iconName, cut,
00119 recvr, slot,
00120 parent, (name) ? name : pInfo->psName );
00121 break;
00122 }
00123 }
00124 return pAction;
00125 }
00126
00127 const char* name( StdAction id )
00128 {
00129 const KStdActionInfo* pInfo = infoPtr( id );
00130 return (pInfo) ? pInfo->psName : 0;
00131 }
00132
00133 KAction *openNew( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00134 { return KStdAction::create( New, name, recvr, slot, parent ); }
00135 KAction *open( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00136 { return KStdAction::create( Open, name, recvr, slot, parent ); }
00137 KRecentFilesAction *openRecent( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00138 { return (KRecentFilesAction*) KStdAction::create( OpenRecent, name, recvr, slot, parent ); }
00139 KAction *save( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00140 { return KStdAction::create( Save, name, recvr, slot, parent ); }
00141 KAction *saveAs( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00142 { return KStdAction::create( SaveAs, name, recvr, slot, parent ); }
00143 KAction *revert( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00144 { return KStdAction::create( Revert, name, recvr, slot, parent ); }
00145 KAction *print( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00146 { return KStdAction::create( Print, name, recvr, slot, parent ); }
00147 KAction *printPreview( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00148 { return KStdAction::create( PrintPreview, name, recvr, slot, parent ); }
00149 KAction *close( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00150 { return KStdAction::create( Close, name, recvr, slot, parent ); }
00151 KAction *mail( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00152 { return KStdAction::create( Mail, name, recvr, slot, parent ); }
00153 KAction *quit( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00154 { return KStdAction::create( Quit, name, recvr, slot, parent ); }
00155 KAction *undo( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00156 { return KStdAction::create( Undo, name, recvr, slot, parent ); }
00157 KAction *redo( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00158 { return KStdAction::create( Redo, name, recvr, slot, parent ); }
00159 KAction *cut( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00160 { return KStdAction::create( Cut, name, recvr, slot, parent ); }
00161 KAction *copy( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00162 { return KStdAction::create( Copy, name, recvr, slot, parent ); }
00163 KAction *paste( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00164 { return KStdAction::create( Paste, name, recvr, slot, parent ); }
00165 KAction *pasteText( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00166 { return KStdAction::create( PasteText, name, recvr, slot, parent ); }
00167 KAction *clear( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00168 { return KStdAction::create( Clear, name, recvr, slot, parent ); }
00169 KAction *selectAll( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00170 { return KStdAction::create( SelectAll, name, recvr, slot, parent ); }
00171 KAction *deselect( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00172 { return KStdAction::create( Deselect, name, recvr, slot, parent ); }
00173 KAction *find( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00174 { return KStdAction::create( Find, name, recvr, slot, parent ); }
00175 KAction *findNext( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00176 { return KStdAction::create( FindNext, name, recvr, slot, parent ); }
00177 KAction *findPrev( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00178 { return KStdAction::create( FindPrev, name, recvr, slot, parent ); }
00179 KAction *replace( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00180 { return KStdAction::create( Replace, name, recvr, slot, parent ); }
00181 KAction *actualSize( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00182 { return KStdAction::create( ActualSize, name, recvr, slot, parent ); }
00183 KAction *fitToPage( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00184 { return KStdAction::create( FitToPage, name, recvr, slot, parent ); }
00185 KAction *fitToWidth( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00186 { return KStdAction::create( FitToWidth, name, recvr, slot, parent ); }
00187 KAction *fitToHeight( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00188 { return KStdAction::create( FitToHeight, name, recvr, slot, parent ); }
00189 KAction *zoomIn( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00190 { return KStdAction::create( ZoomIn, name, recvr, slot, parent ); }
00191 KAction *zoomOut( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00192 { return KStdAction::create( ZoomOut, name, recvr, slot, parent ); }
00193 KAction *zoom( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00194 { return KStdAction::create( Zoom, name, recvr, slot, parent ); }
00195 KAction *redisplay( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00196 { return KStdAction::create( Redisplay, name, recvr, slot, parent ); }
00197 KAction *up( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00198 { return KStdAction::create( Up, name, recvr, slot, parent ); }
00199 KAction *back( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00200 { return KStdAction::create( Back, name, recvr, slot, parent ); }
00201 KAction *forward( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00202 { return KStdAction::create( Forward, name, recvr, slot, parent ); }
00203 KAction *home( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00204 { return KStdAction::create( Home, name, recvr, slot, parent ); }
00205 KAction *prior( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00206 { return KStdAction::create( Prior, name, recvr, slot, parent ); }
00207 KAction *next( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00208 { return KStdAction::create( Next, name, recvr, slot, parent ); }
00209 KAction *goTo( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00210 { return KStdAction::create( Goto, name, recvr, slot, parent ); }
00211 KAction *gotoPage( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00212 { return KStdAction::create( GotoPage, name, recvr, slot, parent ); }
00213 KAction *gotoLine( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00214 { return KStdAction::create( GotoLine, name, recvr, slot, parent ); }
00215 KAction *firstPage( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00216 { return KStdAction::create( FirstPage, name, recvr, slot, parent ); }
00217 KAction *lastPage( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00218 { return KStdAction::create( LastPage, name, recvr, slot, parent ); }
00219 KAction *addBookmark( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00220 { return KStdAction::create( AddBookmark, name, recvr, slot, parent ); }
00221 KAction *editBookmarks( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00222 { return KStdAction::create( EditBookmarks, name, recvr, slot, parent ); }
00223 KAction *spelling( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00224 { return KStdAction::create( Spelling, name, recvr, slot, parent ); }
00225
00226 KToggleAction *showMenubar( const QObject *recvr, const char *slot, KActionCollection* parent, const char *_name )
00227 {
00228 KToggleAction *ret;
00229 ret = new KToggleAction(i18n("Show &Menubar"), "showmenu", KStdAccel::shortcut(KStdAccel::ShowMenubar), recvr, slot,
00230 parent, _name ? _name : name(ShowMenubar));
00231 ret->setWhatsThis( i18n( "Show Menubar<p>"
00232 "Shows the menubar again after it has been hidden" ) );
00233 KGuiItem guiItem( i18n("Hide &Menubar"), 0 , QString::null,
00234 i18n( "Hide Menubar<p>"
00235 "Hide the menubar. You can usually get it back using the right mouse button inside the window itself." ) );
00236 ret->setCheckedState( guiItem );
00237 ret->setChecked(true);
00238 return ret;
00239 }
00240
00241
00242 KToggleAction *showToolbar( const QObject *recvr, const char *slot, KActionCollection* parent, const char *_name )
00243 {
00244 KToggleAction *ret;
00245 ret = new KToggleAction(i18n("Show &Toolbar"), 0, recvr, slot, parent,
00246 _name ? _name : name(ShowToolbar));
00247 ret->setChecked(true);
00248 return ret;
00249
00250 }
00251
00252
00253 KToggleToolBarAction *showToolbar( const char* toolBarName, KActionCollection* parent, const char *_name )
00254 {
00255 KToggleToolBarAction *ret;
00256 ret = new KToggleToolBarAction(toolBarName, i18n("Show &Toolbar"), parent,
00257 _name ? _name : name(ShowToolbar));
00258 return ret;
00259 }
00260
00261 KToggleAction *showStatusbar( const QObject *recvr, const char *slot,
00262 KActionCollection* parent, const char *_name )
00263 {
00264 KToggleAction *ret;
00265 ret = new KToggleAction(i18n("Show St&atusbar"), 0, recvr, slot, parent,
00266 _name ? _name : name(ShowStatusbar));
00267 ret->setWhatsThis( i18n( "Show Statusbar<p>"
00268 "Shows the statusbar, which is the bar at the bottom of the window used for status information." ) );
00269 KGuiItem guiItem( i18n("Hide St&atusbar"), QString::null, QString::null,
00270 i18n( "Hide Statusbar<p>"
00271 "Hides the statusbar, which is the bar at the bottom of the window used for status information." ) );
00272 ret->setCheckedState( guiItem );
00273
00274 ret->setChecked(true);
00275 return ret;
00276 }
00277
00278 KToggleFullScreenAction *fullScreen( const QObject *recvr, const char *slot, KActionCollection* parent,
00279 QWidget* window, const char *name )
00280 {
00281 KToggleFullScreenAction *ret;
00282 ret = static_cast< KToggleFullScreenAction* >( KStdAction::create( FullScreen, name, recvr, slot, parent ));
00283 ret->setWindow( window );
00284 return ret;
00285 }
00286
00287 KAction *saveOptions( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00288 { return KStdAction::create( SaveOptions, name, recvr, slot, parent ); }
00289 KAction *keyBindings( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00290 { return KStdAction::create( KeyBindings, name, recvr, slot, parent ); }
00291 KAction *preferences( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00292 { return KStdAction::create( Preferences, name, recvr, slot, parent ); }
00293 KAction *configureToolbars( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00294 { return KStdAction::create( ConfigureToolbars, name, recvr, slot, parent ); }
00295 KAction *configureNotifications( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00296 { return KStdAction::create( ConfigureNotifications, name, recvr, slot, parent ); }
00297 KAction *help( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00298 { return KStdAction::create( Help, name, recvr, slot, parent ); }
00299 KAction *helpContents( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00300 { return KStdAction::create( HelpContents, name, recvr, slot, parent ); }
00301 KAction *whatsThis( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00302 { return KStdAction::create( WhatsThis, name, recvr, slot, parent ); }
00303 KAction *tipOfDay( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00304 { return KStdAction::create( TipofDay, name, recvr, slot, parent ); }
00305 KAction *reportBug( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00306 { return KStdAction::create( ReportBug, name, recvr, slot, parent ); }
00307 KAction *aboutApp( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00308 { return KStdAction::create( AboutApp, name, recvr, slot, parent ); }
00309 KAction *aboutKDE( const QObject *recvr, const char *slot, KActionCollection* parent, const char *name )
00310 { return KStdAction::create( AboutKDE, name, recvr, slot, parent ); }
00311
00312 }