From 4a586a34c99d32dd8e2f439a16e5e2a99355b72b Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sun, 15 May 2011 09:47:59 +0000 Subject: ExternalAPI: update git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@95 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- ExternalAPI/m_skins.h | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 ExternalAPI/m_skins.h (limited to 'ExternalAPI/m_skins.h') diff --git a/ExternalAPI/m_skins.h b/ExternalAPI/m_skins.h new file mode 100644 index 0000000..da01064 --- /dev/null +++ b/ExternalAPI/m_skins.h @@ -0,0 +1,142 @@ +/* +Copyright (C) 2008 Ricardo Pescuma Domenecci + +This is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this file; see the file license.txt. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. +*/ + + +#ifndef __M_SKINS_H__ +# define __M_SKINS_H__ + +#include + +#define MIID_SKINS { 0x917db7a4, 0xd0fe, 0x4b1c, { 0x8c, 0xa3, 0x6d, 0xc1, 0x44, 0x80, 0xf5, 0xcc } } + + +typedef void * SKINNED_DIALOG; +typedef void * SKINNED_FIELD; +typedef void * SKINNED_DIALOG_STATE; +typedef void * SKINNED_FIELD_STATE; + +typedef void (*SkinOptionsChangedCallback)(void *param, SKINNED_DIALOG dlg); + + +#define SKN_HALIGN_LEFT 1 +#define SKN_HALIGN_CENTER 2 +#define SKN_HALIGN_RIGHT 3 + +#define SKN_VALIGN_TOP 1 +#define SKN_VALIGN_CENTER 2 +#define SKN_VALIGN_BOTTOM 3 + + +/// Some common parameters: +/// - name : internal name and name used inside skin file +/// - description : name shown to the user +/// - module : the module name where the settings will be stored +/// Do not translate any parameters. +struct SKIN_INTERFACE +{ + int cbSize; + + // Global methods + SKINNED_DIALOG (*RegisterDialog)(const char *name, const char *description, const char *module); + void (*DeleteDialog)(SKINNED_DIALOG dlg); + void (*SetSkinChangedCallback)(SKINNED_DIALOG dlg, SkinOptionsChangedCallback cb, void *param); + void (*FinishedConfiguring)(SKINNED_DIALOG dlg); + + // Dialog methods + SKINNED_FIELD (*AddTextField)(SKINNED_DIALOG dlg, const char *name, const char *description); + SKINNED_FIELD (*AddIconField)(SKINNED_DIALOG dlg, const char *name, const char *description); + SKINNED_FIELD (*AddImageField)(SKINNED_DIALOG dlg, const char *name, const char *description); + SKINNED_FIELD (*GetField)(SKINNED_DIALOG dlg, const char *name); + void (*SetDialogSize)(SKINNED_DIALOG dlg, int width, int height); + void (*SetInfoInt)(SKINNED_DIALOG dlg, const char *name, int value); + void (*SetInfoDouble)(SKINNED_DIALOG dlg, const char *name, double value); + void (*SetInfoBool)(SKINNED_DIALOG dlg, const char *name, BOOL value); + void (*SetInfoString)(SKINNED_DIALOG dlg, const char *name, const TCHAR *value); + void (*RemoveInfo)(SKINNED_DIALOG dlg, const char *name); + + // Field methods + void (*SetEnabled)(SKINNED_FIELD field, BOOL enabled); + void (*SetToolTipA)(SKINNED_FIELD field, const char *tooltip); + void (*SetToolTipW)(SKINNED_FIELD field, const WCHAR *tooltip); + + // TextField methods + void (*SetTextA)(SKINNED_FIELD field, const char *text); + void (*SetTextW)(SKINNED_FIELD field, const WCHAR *text); + + // IconField methods + void (*SetIcon)(SKINNED_FIELD field, HICON hIcon); + + // ImageField methods + void (*SetImage)(SKINNED_FIELD field, HBITMAP hBmp); + + // Run the skin and get an state from it + SKINNED_DIALOG_STATE (*Run)(SKINNED_DIALOG dialog); + + // Dialog State methods + SKINNED_FIELD_STATE (*GetFieldState)(SKINNED_DIALOG_STATE dlg, const char *name); + RECT (*GetDialogBorders)(SKINNED_DIALOG_STATE dlg); + + // Field State methods + RECT (*GetRect)(SKINNED_FIELD_STATE field); // With borders + RECT (*GetInsideRect)(SKINNED_FIELD_STATE field); // Without borders + RECT (*GetRawRect)(SKINNED_FIELD_STATE field); // With borders, without processing to assert inside window + RECT (*GetRawInsideRect)(SKINNED_FIELD_STATE field); // Without borders, without processing to assert inside window + RECT (*GetBorders)(SKINNED_FIELD_STATE field); + BOOL (*IsVisible)(SKINNED_FIELD_STATE field); + char * (*GetToolTipA)(SKINNED_FIELD field); // You have to free the result + WCHAR * (*GetToolTipW)(SKINNED_FIELD field); // You have to free the result + int (*GetHorizontalAlign)(SKINNED_FIELD_STATE field); // one of SKN_HALIGN_* + int (*GetVerticalAlign)(SKINNED_FIELD_STATE field); // one of SKN_VALIGN_* + + // TextField State methods + char * (*GetTextA)(SKINNED_FIELD_STATE field); // You have to free the result + WCHAR * (*GetTextW)(SKINNED_FIELD_STATE field); // You have to free the result + HFONT (*GetFont)(SKINNED_FIELD_STATE field); + COLORREF (*GetFontColor)(SKINNED_FIELD_STATE field); + + // IconField State methods + HICON (*GetIcon)(SKINNED_FIELD_STATE field); + + // ImageField State methods + HBITMAP (*GetImage)(SKINNED_FIELD_STATE field); +}; + + + +/* +Skins/GetInterface service +Fill the function pointers for a SKIN_INTERFACE struct + +wparam = 0 +lparam = (SKIN_INTERFACE *) struct to be filled +returns: 0 on success +*/ +#define MS_SKINS_GETINTERFACE "Skins/GetInterface" + + + + +static int mir_skins_getInterface(struct SKIN_INTERFACE *dest) +{ + dest->cbSize = sizeof(SKIN_INTERFACE); + return CallService(MS_SKINS_GETINTERFACE, 0, (LPARAM) dest); +} + + +#endif // __M_SKINS_H__ -- cgit v1.2.3