gambas-source-code/main/share/gb_component.h

72 lines
2.1 KiB
C
Raw Normal View History

/***************************************************************************
gb_component.h
(c) 2000-2017 Benoît Minisini <gambas@users.sourceforge.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
***************************************************************************/
#ifndef __GB_COMPONENT_H
#define __GB_COMPONENT_H
#include "config.h"
typedef
struct {
int version;
void *func[0];
}
INTERFACE;
#define LIB_INIT "GB_INIT"
[INTERPRETER] * NEW: GB.GetReturnValue() is a new interpreter API that returns a pointer to the internal GB_VALUE slot where GB.ReturnXXX() functions store the return value. * NEW: Allow a component to declare a GB_AFTER_INIT() exported method that is called just after all the components declared in the project are completely loaded. [GB.DBUS] * NEW: DBus._HasSystemTray() is a new method that returns if the DBus system tray is present. That method is used by the 'gb.gui.trayicon' component to know if 'gb.dbus.trayicon' must be loaded. * BUG: Fix xml introspection analysis. [GB.DBUS.TRAYICON] * BUG: Remove debugging messages. * BUG: TrayIcon icon data is sent correctly now. [GB.GUI.TRAYICON] * NEW: New component that you must check if you want to have system tray icons. It loads 'gb.dbus', use DBus._HasSystemTray() to know if it can load 'gb.dbus.trayicon'. Otherwise it tells the current GUI component to declare the old system tray implementation classes. [GB.GTK] * NEW: Let the new 'gb.gui.trayicon' deals with the dbus stuff, but keep the old system tray icon and use them on demand. [GB.GTK3] * NEW: Let the new 'gb.gui.trayicon' deals with the dbus stuff, but keep the old system tray icon and use them on demand. [GB.QT4] * NEW: Let the new 'gb.gui.trayicon' deals with the dbus stuff, but keep the old system tray icon and use them on demand. [GB.QT5] * NEW: Let the new 'gb.gui.trayicon' deals with the dbus stuff, but keep the old system tray icon and use them on demand. git-svn-id: svn://localhost/gambas/trunk@7170 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-07-04 00:18:58 +02:00
#define LIB_AFTER_INIT "GB_AFTER_INIT"
#define LIB_EXIT "GB_EXIT"
#define LIB_INTERFACE "GB_INTERFACE"
#define LIB_CLASS "GB_CLASSES"
[INTERPRETER] * NEW: Add a new GB.Component.Declare() API, that allows a component to dynamically register a class description. [INFORMER] * NEW: A component now can declare classes through a GB_OPTIONAL_CLASSES public symbol. Theses classes are included into the information file, but are not automatically loaded as the ones defined through the GB_CLASSES symbol. [GB.FORM.STATUSICON] * NEW: This component has been removed and replaced by gb.dbus.trayicon. * NEW: This component now provide TrayIcon and TrayIcons classes that have exactly the same interface as the old ones. [GB.DBUS] * NEW: Remove the now useless DBusConnection.Raise(). The DBusConnection Register() and Unregister() are kept for backward-compatibility reason. * NEW: Add DBus.Raise() and DBus[].Raise() to raise signals. At the moment, there is no difference between the two methods, as there no mean to indicate the sender raising a signal. I don't know yet how DBus decides which service sends a signal! [GB.DBUS.TRAYICON] * NEW: This component implements the tray icon DBus protocol. It is automatically loaded by the GUI components. [GB.GTK] * NEW: Load the 'gb.dbus' and 'gb.dbus.trayicon' components if the current desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation. * BUG: Fix the old TrayIcon implementation, so that it matches the QT one. [GB.GTK3] * NEW: Load the 'gb.dbus' and 'gb.dbus.trayicon' components if the current desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation. * BUG: Fix the component name in deprecation warning messages. * BUG: Fix the old TrayIcon implementation, so that it matches the QT one. [GB.QT4] * NEW: Load the 'gb.dbus' and 'gb.dbus.trayicon' components if the current desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation. [GB.QT5] * NEW: Load the 'gb.dbus' and 'gb.dbus.trayicon' components if the current desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation. git-svn-id: svn://localhost/gambas/trunk@7154 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-06-29 03:46:51 +02:00
#define LIB_OPTIONAL "GB_OPTIONAL_CLASSES"
#define LIB_INCLUDE "GB_INCLUDE"
#define LIB_SIGNAL "GB_SIGNAL"
#define LIB_INFO "GB_INFO"
#define LIB_NEED "GB_NEED"
#define LIB_GAMBAS "GB"
#define LIB_GAMBAS_PTR "GB_PTR"
#define LIB_MAIN "GB_MAIN"
#ifdef DONT_USE_LTDL
#if defined(OS_MACOSX)
#define LIB_PATTERN "%s/%s.so"
#elif defined(OS_OPENBSD)
#define LIB_PATTERN "%s/%s." SHARED_LIBRARY_EXT ".0.0"
#elif defined(OS_CYGWIN)
#define LIB_PATTERN "%s/%s-0." SHARED_LIBRARY_EXT
#else
#define LIB_PATTERN "%s/%s." SHARED_LIBRARY_EXT
#endif
#else
#define LIB_PATTERN "%s/%s.la"
#endif
#define ARCH_PATTERN "%s/%s.gambas"
#define GAMBAS_LINK_PATH "/usr/bin/gbx" GAMBAS_VERSION_STRING
#define GAMBAS_LIB_PATH "lib/gambas" GAMBAS_VERSION_STRING
#define GAMBAS_LIB64_PATH "lib64/gambas" GAMBAS_VERSION_STRING
#endif