# gcp::Application Class Reference

GChemPaint application base class. More...

`#include <gcp/application.h>`

Inheritance diagram for gcp::Application:

List of all members.

## Public Member Functions

| Application ()
virtual | ~Application ()
void | ActivateTool (const std::string &toolname, bool activate)
void | ActivateWindowsActionWidget (const char *path, bool activate)
virtual void | ClearStatus ()
virtual void | SetStatusText (const char *text)
virtual GtkWindow * | GetWindow ()=0
Tool * | GetActiveTool ()
gcp::Document * | GetActiveDocument ()
void | SetActiveDocument (gcp::Document *pDoc)
Tool * | GetTool (const std::string &name)
void | SetTool (const std::string &toolname, Tool *tool)
GtkWidget * | GetToolItem (const std::string &name)
void | SetToolItem (const std::string &name, GtkWidget *w)
void | SetCurZ (int Z)
int | GetCurZ ()
void | OnSaveAs ()
bool | FileProcess (const gchar *filename, const gchar *mime_type, bool bSave, GtkWindow *window, gcu::Document *pDoc=NULL)
void | SaveWithBabel (std::string const &filename, const gchar *mime_type, gcp::Document *pDoc)
void | OpenWithBabel (std::string const &filename, const gchar *mime_type, gcp::Document *pDoc)
void | SaveGcp (std::string const &filename, gcp::Document *pDoc)
void | OpenGcp (std::string const &filename, gcp::Document *pDoc)
xmlDocPtr | GetXmlDoc ()
void | OnSaveAsImage ()
bool | HaveGhemical ()
bool | HaveInChI ()
int | GetDocsNumber ()
void | Zoom (double zoom)
void | AddActions (GtkRadioActionEntry const *entries, int nb, char const *ui_description, IconDesc const *icons)
void | RegisterToolbar (char const *name, int index)
void | OnToolChanged (GtkAction *current)
void | AddTarget (Target *target)
void | DeleteTarget (Target *target)
void | NotifyIconification (bool iconified)
void | NotifyFocus (bool has_focus, Target *target=NULL)
void | CloseAll ()
std::list< std::string > & | GetSupportedMimeTypes ()
void | OnConfigChanged (GConfClient *client, guint cnxn_id, GConfEntry *entry)
std::list< std::string > & | GetExtensions (std::string &mime_type)
void | OnThemeNamesChanged ()
void | AddMenuCallback (BuildMenuCb cb)
void | BuildMenu (GtkUIManager *manager)
void | RegisterOptions (GOptionEntry const *entries, char const *translation_domain=GETTEXT_PACKAGE)
void | AddOptions (GOptionContext *context)
gcu::Document * | CreateNewDocument ()
virtual void | OnFileNew (char const *Theme=NULL)=0

## Protected Member Functions

void | InitTools ()
void | BuildTools ()
void | ShowTools (bool visible)

## Protected Attributes

gcp::Document * | m_pActiveDoc
Target * | m_pActiveTarget
unsigned | m_NumWindow

## Detailed Description

GChemPaint application base class.

This class is used to represent a GChemPaint application. It is a virtual class since at least one method is pure virtual (gcp::Application::GetWindow)

Definition at line 79 of file gcp/application.h.

## Constructor & Destructor Documentation

gcp::Application::Application | ( |  | ) |

The default constructor.

virtual gcp::Application::~Application | ( |  | ) | `[virtual]`

The destructor.

Reimplemented from gcu::Application.

## Member Function Documentation

void gcp::Application::ActivateTool | ( | const std::string & | toolname,
|  | bool | activate |
| ) |  |  |

Parameters:

  | toolname | the name of the tool.
  | activate | whether to activate or deactivate.

Activates or deactivates a tool in the GChempaint tool box.

To activate the selection tool:

                     ActivateTool ("Select", true);

void gcp::Application::ActivateWindowsActionWidget | ( | const char * | path,
|  | bool | activate |
| ) |  |  |

Parameters:

  | path | the path to activate.
  | activate | whether to activate or deactivate.

Activates or deactivates the menu item corresponding to path according to the value of activate.

To deactivate the "Paste" menu item, use:

                     ActivateWindowsActionWidget ("/MainMenu/EditMenu/Paste", false);

Calls gcp::Window::ActivateActionWidget.

virtual void gcp::Application::ClearStatus | ( |  | ) | `[virtual]`

Clears the message in the status bar.

virtual void gcp::Application::SetStatusText | ( | const char * | text | ) | `[virtual]`

Parameters:

  | text | a text to display

Displays text in the status bar.

virtual GtkWindow* gcp::Application::GetWindow | ( |  | ) | `[pure virtual]`

This pure virtual method must be overloaded by derived classes.

Returns:
  the current active top level window if any, or NULL.

Reimplemented from gcu::Application.

Tool* gcp::Application::GetActiveTool | ( |  | ) | `[inline]`

Returns:
  the active tool.

Definition at line 137 of file gcp/application.h.

gcp::Document* gcp::Application::GetActiveDocument | ( |  | ) | `[inline]`

Returns:
  the active document.

Definition at line 141 of file gcp/application.h.

References m_pActiveDoc.

void gcp::Application::SetActiveDocument | ( | gcp::Document * | pDoc | ) | `[inline]`

Parameters:

  | pDoc | the document becoming active.

Sets the new active document.

Definition at line 147 of file gcp/application.h.

References m_pActiveDoc.

Tool* gcp::Application::GetTool | ( | const std::string & | name | ) | `[inline]`

Parameters:

  | name | the name of a tool

Returns:
  the Tool corresponding to name.

Definition at line 152 of file gcp/application.h.

void gcp::Application::SetTool | ( | const std::string & | toolname,
|  | Tool * | tool |
| ) |  |  | `[inline]`

Parameters:

  | toolname | the name of a new tool.
  | tool | the new Tool.

Adds a new tool to the tools box. This method is called from the Tool constructor.

Definition at line 160 of file gcp/application.h.

GtkWidget* gcp::Application::GetToolItem | ( | const std::string & | name | ) | `[inline]`

Parameters:

  | name | the name of a tool

Returns:
  the GtkWidget corresponding to the Tool named name.

Definition at line 165 of file gcp/application.h.

void gcp::Application::SetToolItem | ( | const std::string & | name,
|  | GtkWidget * | w |
| ) |  |  | `[inline]`

Parameters:

  | name | the name of a new tool.
  | w | a GtkWidget.

Associates w to the Tool named name. SetTool() will return this widget when its argument is name.

Definition at line 173 of file gcp/application.h.

void gcp::Application::SetCurZ | ( | int | Z | ) | `[inline]`

Parameters:

  | Z | the new current atomic number.

Sets the new current atomic number. This number is used for new atoms.

Definition at line 179 of file gcp/application.h.

int gcp::Application::GetCurZ | ( |  | ) | `[inline]`

Returns:
  the current atomic number.

Definition at line 183 of file gcp/application.h.

void gcp::Application::OnSaveAs | ( |  | ) |

Open the file save as dialog to save the current document with a new name.

bool gcp::Application::FileProcess | ( | const gchar * | filename,
|  | const gchar * | mime_type,
|  | bool | bSave,
|  | GtkWindow * | window,
|  | gcu::Document * | pDoc = `NULL` |
| ) |  |  | `[virtual]`

Parameters:

  | filename | the URI of the file to save or open.
  | mime_type | the mime type.
  | bSave | true when saving and false when opening.
  | window | a parent GtkWindow which is used for messabe boxes if any.
  | pDoc | a document (might be NULL when loading.

Callback called when the user clicks on the Save or Open button in the file chooser to process the file.

Returns:
  false on success, true otherwise.

Reimplemented from gcu::Application.

void gcp::Application::SaveWithBabel | ( | std::string const & | filename,
|  | const gchar * | mime_type,
|  | gcp::Document * | pDoc |
| ) |  |  |

Parameters:

  | filename | the URI of the file to save.
  | mime_type | the mime type.
  | pDoc | the document to save.

Saves the active document using the Openbabel library.

void gcp::Application::OpenWithBabel | ( | std::string const & | filename,
|  | const gchar * | mime_type,
|  | gcp::Document * | pDoc |
| ) |  |  |

Parameters:

  | filename | the URI of the file to load.
  | mime_type | the mime type.
  | pDoc | a document or NULL.

Loads a document using the Openbabel library.

void gcp::Application::SaveGcp | ( | std::string const & | filename,
|  | gcp::Document * | pDoc |
| ) |  |  |

Parameters:

  | filename | the URI of the file to save.
  | pDoc | the document to save.

Saves the active document in the native GChemPaint format.

void gcp::Application::OpenGcp | ( | std::string const & | filename,
|  | gcp::Document * | pDoc |
| ) |  |  |

Parameters:

  | filename | the URI of the file to load.
  | pDoc | a document or NULL.

Loads a GChemPaint document.

xmlDocPtr gcp::Application::GetXmlDoc | ( |  | ) | `[inline]`

Returns:
  a xmlDocPtr used for some undo/redo related operations. The text tools use it.

Definition at line 234 of file gcp/application.h.

void gcp::Application::OnSaveAsImage | ( |  | ) |

Saves the active view as an image.

bool gcp::Application::HaveGhemical | ( |  | ) | `[inline]`

Returns:
  true if ghemical is usable.

Definition at line 242 of file gcp/application.h.

bool gcp::Application::HaveInChI | ( |  | ) | `[inline]`

Returns:
  true if InChIs can be evaluated for molecules.

Definition at line 246 of file gcp/application.h.

int gcp::Application::GetDocsNumber | ( |  | ) | `[inline]`

Returns:
  the number of opened documents.

Definition at line 250 of file gcp/application.h.

References gcu::Application::m_Docs.

void gcp::Application::Zoom | ( | double | zoom | ) |

Parameters:

  | zoom | the new zoom level.

Sets the zoom level for the active document window.

void gcp::Application::AddActions | ( | GtkRadioActionEntry const * | entries,
|  | int | nb,
|  | char const * | ui_description,
|  | IconDesc const * | icons |
| ) |  |  |

Parameters:

  | entries | an array of GtkRadioActionEntry structures.
  | nb | the number of entries.
  | ui_description | an xml like text describing the user interface.
  | icons | an array of IconDesc structures for the icons used by the buttons.

Adds new buttons in the tools box. The code used in the selection plugin is:

    static gcp::IconDesc icon_descs[] = {
            {"gcp_Selection", gcp_selection_24},
            {"gcp_Eraser", gcp_eraser_24},
            {NULL, NULL}
    };

    static GtkRadioActionEntry entries[] = {
            {       "Select", "gcp_Selection", N_("Select"), NULL,
                    N_("Select one or more objects"),
                    0       },
            {       "Erase", "gcp_Eraser", N_("Erase"), NULL,
                    N_("Eraser"),
                    0       }
    };

    static const char *ui_description =
    "<ui>"
    "  <toolbar name='SelectToolbar'>"
    "        <placeholder name='Select1'>"
    "      <toolitem action='Select'/>"
    "      <toolitem action='Erase'/>"
    "        </placeholder>"
    "        <placeholder name='Select2'/>"
    "        <placeholder name='Select3'/>"
    "  </toolbar>"
    "</ui>";

    void gcpSelectionPlugin::Populate (gcp::Application* App)
    {
            App->AddActions (entries, G_N_ELEMENTS (entries), ui_description, icon_descs);
            App->RegisterToolbar ("SelectToolbar", 0);
            new gcpSelectionTool (App);
            new gcpEraserTool (App);
            App->ActivateTool ("Select", true);
    }

void gcp::Application::RegisterToolbar | ( | char const * | name,
|  | int | index |
| ) |  |  |

Parameters:

  | name | the name of the toolbar.
  | index | the rank of the toolbar in the toolbox.

Adds a new toolbar to the tools box. See the documentation of gcp::Application::AddActions() for a case use.

void gcp::Application::OnToolChanged | ( | GtkAction * | current | ) |

Parameters:

  | current | the GtkAction for the activated tool.

Call by the framework when the active tool changed.

void gcp::Application::AddTarget | ( | Target * | target | ) |

Parameters:

  | target | the Target to add.

Adds a Target to the list of known Targets and displays the tools box next to the Target.

void gcp::Application::DeleteTarget | ( | Target * | target | ) |

Parameters:

  | target | the Target to delete.

Deletes a Target from the list of known Targets. The tools box will be hidden if no Target remains active.

void gcp::Application::NotifyIconification | ( | bool | iconified | ) |

Parameters:

  | iconified | whether the currently active Target is iconified or not.

If iconified is true, the tools box will be hidden if no Target remains active, otherwise it will be displayed next to the active Target.

void gcp::Application::NotifyFocus | ( | bool | has_focus,
|  | Target * | target = `NULL` |
| ) |  |  |

Parameters:

  | has_focus | whether the Target has focus or not.
  | target | the Target for which the event occured.

Shows the tools box next to target if has_focus is true and if target is not NULL.

void gcp::Application::CloseAll | ( |  | ) |

Closes all open documents and ends the application.

std::list<std::string>& gcp::Application::GetSupportedMimeTypes | ( |  | ) | `[inline]`

Returns:
  a list of supported mime types.

Definition at line 353 of file gcp/application.h.

void gcp::Application::OnConfigChanged | ( | GConfClient * | client,
|  | guint | cnxn_id,
|  | GConfEntry * | entry |
| ) |  |  |

Parameters:

  | client | a GConfClient.
  | cnxn_id | the id returned by gconf_client_notify_add.
  | entry | the entry which changed.

Called by the framework when the configuration entry has changed to update a running application preferences.

std::list<std::string>& gcp::Application::GetExtensions | ( | std::string & | mime_type | ) |

Parameters:

  | mime_type | a mime type.

Returns:
  the list of file name extensions corresponding to the mime type.

void gcp::Application::OnThemeNamesChanged | ( |  | ) |

Called by the framework after a change of a theme name. Ensure evrything is correctly updated.

void gcp::Application::AddMenuCallback | ( | BuildMenuCb | cb | ) |

Parameters:

  | cb,: | the BuildMenuCb callback to call when building the menu.

adds a callback for adding entries to the windows menus.

void gcp::Application::BuildMenu | ( | GtkUIManager * | manager | ) |

Parameters:

  | manager,: | the GtkUIManager to populate.

Populates the user interface by calling all callbacks registered with AddMenuCallback.

void gcp::Application::RegisterOptions | ( | GOptionEntry const * | entries,
|  | char const * | translation_domain = `GETTEXT_PACKAGE` |
| ) |  |  |

Parameters:

  | entries,: | the entries to register.
  | translation_domain,: | the entries to register.

Adds new command line options. Typically called from a plugin. The new options are added to the main group.

void gcp::Application::AddOptions | ( | GOptionContext * | context | ) |

Parameters:

  | context,: | a GOptionContext

Adds all registered options to the context. This should be called once just after creating the application and before parsing options.

gcu::Document* gcp::Application::CreateNewDocument | ( |  | ) | `[virtual]`

Creates a new document using the default theme.

Returns:
  the newly created document.

Reimplemented from gcu::Application.

virtual void gcp::Application::OnFileNew | ( | char const * | Theme = `NULL` | ) | `[pure virtual]`

Parameters:

  | Theme | a gcp::Theme or NULL.

Creates a new document using the ginev theme or the default theme if Theme is NULL. This method must be overloaded by derived classes since it is pure virtual.

void gcp::Application::InitTools | ( |  | ) | `[protected]`

Initialize the tools box so that the selection tool is active. This method is called only once aafter startup by the framework.

void gcp::Application::BuildTools | ( |  | ) | `[protected]`

Builds the tools box. This method is called only once after startup by the framework.

void gcp::Application::ShowTools | ( | bool | visible | ) | `[protected]`

Parameters:

  | visible | whether the tools box should be visible or not

Shows or hides the tools box.

## Member Data Documentation

gcp::Document* gcp::Application::m_pActiveDoc `[protected]`

The active document.

Definition at line 460 of file gcp/application.h.

Referenced by GetActiveDocument(), and SetActiveDocument().

Target* gcp::Application::m_pActiveTarget `[protected]`

The active target.

Definition at line 464 of file gcp/application.h.

unsigned gcp::Application::m_NumWindow `[protected]`

Used to add a number to new files default names.

Definition at line 468 of file gcp/application.h.

The documentation for this class was generated from the following file:

- gcp/application.h