libyui
YApplication.h
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: YApplication.h
20 
21  Author: Stefan Hundhammer <shundhammer@suse.de>
22 
23 /-*/
24 
25 #ifndef YApplication_h
26 
27 #include <string>
28 #include <map>
29 #include "YUI.h"
30 #include "ImplPtr.h"
31 #include "YMenuItem.h"
32 #include "YIconLoader.h"
33 
34 
35 
36 class YWidget;
37 class YWidgetID;
38 struct YApplicationPrivate;
39 
40 
46 {
47 protected:
48 
49  friend class YUI;
55  YApplication();
56 
60  virtual ~YApplication();
61 
62 public:
63 
71  YWidget * findWidget( YWidgetID * id, bool doThrow = true ) const;
72 
78  virtual std::string iconBasePath() const;
79 
83  virtual void setIconBasePath( const std::string & newIconBasePath );
84 
89 
110  int defaultFunctionKey( const std::string & label ) const;
111 
118  void setDefaultFunctionKey( const std::string & label, int fkey );
119 
124 
139  virtual void setLanguage( const std::string & language,
140  const std::string & encoding = std::string() );
141 
146  std::string language( bool stripEncoding = false ) const;
147 
169  virtual std::string glyph( const std::string & glyphSymbolName );
170 
185  virtual std::string askForExistingDirectory( const std::string & startDir,
186  const std::string & headline ) = 0;
187 
204  virtual std::string askForExistingFile( const std::string & startWith,
205  const std::string & filter,
206  const std::string & headline ) = 0;
207 
226  virtual std::string askForSaveFileName( const std::string & startWith,
227  const std::string & filter,
228  const std::string & headline ) = 0;
229 
239  virtual bool openContextMenu( const YItemCollection & itemCollection );
240 
241 
250  virtual void setProductName( const std::string & productName );
251 
255  std::string productName() const;
256 
261  void setReleaseNotes( const std::map<std::string,std::string> & relNotes );
262 
266  std::map<std::string,std::string> releaseNotes() const;
267 
271  void setShowProductLogo( bool show );
272 
276  bool showProductLogo() const;
277 
284  virtual int deviceUnits( YUIDimension dim, float layoutUnits );
285 
292  virtual float layoutUnits( YUIDimension dim, int deviceUnits );
293 
300  virtual void setReverseLayout( bool reverse );
301 
306  bool reverseLayout() const;
307 
312  virtual void busyCursor() {}
313 
318  virtual void normalCursor() {}
319 
324  virtual void makeScreenShot( const std::string & fileName ) {}
325 
330  virtual void beep() {}
331 
332 
333  //
334  // NCurses (text mode) specific
335  //
336 
341  virtual void redrawScreen() {}
342 
347  virtual void initConsoleKeyboard() {}
348 
355  virtual void setConsoleFont( const std::string & console_magic,
356  const std::string & font,
357  const std::string & screen_map,
358  const std::string & unicode_map,
359  const std::string & language )
360  {}
361 
372  virtual int runInTerminal( const std::string & command );
373 
374 
376 
382  virtual void openUI() {}
383  virtual void closeUI() {}
385 
386  //
387  // Display information.
388  //
389  // Width and height are returned in the the UI's native dimension:
390  // Pixels for graphical UIs, character cells for text UIs.
391  // -1 means "value cannot be obtained" for int functions.
392  //
393  // Derived classes are required to implement these functions.
394  //
395 
396  virtual int displayWidth() = 0;
397  virtual int displayHeight() = 0;
398  virtual int displayDepth() = 0;
399  virtual long displayColors() = 0;
400 
401  // Size of main dialogs
402  virtual int defaultWidth() = 0;
403  virtual int defaultHeight() = 0;
404 
405  //
406  // UI capabilities
407  //
408 
409  virtual bool isTextMode() = 0;
410  virtual bool hasImageSupport() = 0;
411  virtual bool hasIconSupport() = 0;
412  virtual bool hasAnimationSupport() = 0;
413  virtual bool hasFullUtf8Support() = 0;
414  virtual bool richTextSupportsTable() = 0;
415  virtual bool leftHandedMouse() = 0;
416  virtual bool hasWizardDialogSupport() { return false; }
417 
418 
422  virtual void setApplicationTitle ( const std::string& title );
423 
429  virtual const std::string& applicationTitle() const;
430 
434  virtual void setApplicationIcon ( const std::string& icon );
435 
441  virtual const std::string& applicationIcon() const;
442 
443 private:
444 
446 
447 };
448 
449 #define YApplication_h
450 
451 #endif // YApplication_h
bool showProductLogo() const
Definition: YApplication.cc:144
virtual void setApplicationTitle(const std::string &title)
Definition: YApplication.cc:283
virtual bool openContextMenu(const YItemCollection &itemCollection)
Definition: YApplication.cc:253
Definition: YUI.h:49
virtual float layoutUnits(YUIDimension dim, int deviceUnits)
Definition: YApplication.cc:269
YApplication()
Definition: YApplication.cc:64
int defaultFunctionKey(const std::string &label) const
Definition: YApplication.cc:163
std::vector< YItem * > YItemCollection
Collection of pointers to YItem.
Definition: YItem.h:39
Definition: YIconLoader.h:32
void clearDefaultFunctionKeys()
Definition: YApplication.cc:186
virtual std::string askForExistingFile(const std::string &startWith, const std::string &filter, const std::string &headline)=0
virtual void openUI()
Definition: YApplication.h:382
virtual void setIconBasePath(const std::string &newIconBasePath)
Definition: YApplication.cc:101
virtual int deviceUnits(YUIDimension dim, float layoutUnits)
Definition: YApplication.cc:262
virtual std::string askForSaveFileName(const std::string &startWith, const std::string &filter, const std::string &headline)=0
virtual ~YApplication()
Definition: YApplication.cc:75
void setShowProductLogo(bool show)
Definition: YApplication.cc:138
virtual std::string askForExistingDirectory(const std::string &startDir, const std::string &headline)=0
virtual int runInTerminal(const std::string &command)
Definition: YApplication.cc:276
virtual void setConsoleFont(const std::string &console_magic, const std::string &font, const std::string &screen_map, const std::string &unicode_map, const std::string &language)
Definition: YApplication.h:355
virtual const std::string & applicationTitle() const
Definition: YApplication.cc:288
virtual void initConsoleKeyboard()
Definition: YApplication.h:347
virtual const std::string & applicationIcon() const
Definition: YApplication.cc:297
Definition: YApplication.h:45
std::string language(bool stripEncoding=false) const
Definition: YApplication.cc:211
std::string productName() const
Definition: YApplication.cc:120
virtual void busyCursor()
Definition: YApplication.h:312
virtual void normalCursor()
Definition: YApplication.h:318
YWidget * findWidget(YWidgetID *id, bool doThrow=true) const
Definition: YApplication.cc:82
Definition: YApplication.cc:45
void setDefaultFunctionKey(const std::string &label, int fkey)
Definition: YApplication.cc:176
bool reverseLayout() const
Definition: YApplication.cc:156
virtual std::string iconBasePath() const
Definition: YApplication.cc:94
virtual void setApplicationIcon(const std::string &icon)
Definition: YApplication.cc:293
virtual void beep()
Definition: YApplication.h:330
virtual void makeScreenShot(const std::string &fileName)
Definition: YApplication.h:324
virtual void setProductName(const std::string &productName)
Definition: YApplication.cc:113
virtual void setReverseLayout(bool reverse)
Definition: YApplication.cc:150
YIconLoader * iconLoader()
Definition: YApplication.cc:107
Definition: YWidgetID.h:36
Definition: YWidget.h:54
virtual void setLanguage(const std::string &language, const std::string &encoding=std::string())
Definition: YApplication.cc:193
virtual std::string glyph(const std::string &glyphSymbolName)
Definition: YApplication.cc:235
void setReleaseNotes(const std::map< std::string, std::string > &relNotes)
Definition: YApplication.cc:126
virtual void redrawScreen()
Definition: YApplication.h:341
std::map< std::string, std::string > releaseNotes() const
Definition: YApplication.cc:132