summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-05-17 18:45:09 +0300
committerGeorge Hazan <ghazan@miranda.im>2022-05-17 18:45:09 +0300
commitc066a9b843e7bfc8f2ab9a991e8fe4d8a2cb54e0 (patch)
tree7ffe59a76add594d63ba38be896b8d3579c3fdbd
parenta2f74318c56a936fa004210bfb9af60cc3aadd10 (diff)
MWindow - further window unification code for Linux
-rw-r--r--codelite/Miranda.workspace2
-rw-r--r--include/m_gui.h70
-rw-r--r--include/m_icolib.h14
-rw-r--r--include/m_types.h10
-rw-r--r--include/newpluginapi.h10
-rw-r--r--src/mir_app/mir_app.mk14
-rw-r--r--src/mir_app/src/miranda.cpp139
-rw-r--r--src/mir_app/src/stdafx.h2
-rw-r--r--src/mir_core/src/Linux/CCtrlBase.cpp2
-rw-r--r--src/mir_core/src/Linux/CCtrlButton.cpp2
-rw-r--r--src/mir_core/src/Linux/CCtrlCheck.cpp2
-rw-r--r--src/mir_core/src/Linux/CCtrlCombo.cpp2
-rw-r--r--src/mir_core/src/Linux/CCtrlEdit.cpp2
-rw-r--r--src/mir_core/src/Linux/CDlgBase.cpp8
14 files changed, 160 insertions, 119 deletions
diff --git a/codelite/Miranda.workspace b/codelite/Miranda.workspace
index 699277bb96..ee208597fb 100644
--- a/codelite/Miranda.workspace
+++ b/codelite/Miranda.workspace
@@ -2,7 +2,7 @@
<CodeLite_Workspace Name="Miranda" Database="" Version="10000">
<VirtualDirectory Name="Core">
<Project Name="mir_core" Path="../src/mir_core/mir_core.project" Active="Yes"/>
- <Project Name="mir_app" Path="../src/mir_app/mir_app.project"/>
+ <Project Name="mir_app" Path="../src/mir_app/mir_app.project" Active="No"/>
</VirtualDirectory>
<BuildMatrix>
<WorkspaceConfiguration Name="Debug">
diff --git a/include/m_gui.h b/include/m_gui.h
index e8a04b861e..4533d26391 100644
--- a/include/m_gui.h
+++ b/include/m_gui.h
@@ -30,7 +30,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define __M_GUI_H
#ifdef _MSC_VER
-#include <CommCtrl.h>
+ #include <CommCtrl.h>
#endif // _WINDOWS
#include <m_system.h>
@@ -348,7 +348,7 @@ public:
CCtrlBase(CDlgBase *wnd, int idCtrl);
virtual ~CCtrlBase();
- __forceinline HWND GetHwnd() const { return m_hwnd; }
+ __forceinline MWindow GetHwnd() const { return m_hwnd; }
__forceinline int GetCtrlId() const { return m_idCtrl; }
__forceinline CDlgBase *GetParent() const { return m_parentWnd; }
__forceinline bool IsChanged() const { return m_bChanged; }
@@ -381,7 +381,7 @@ public:
int GetInt() const;
- virtual BOOL OnCommand(HWND /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) { return FALSE; }
+ virtual BOOL OnCommand(MWindow /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) { return FALSE; }
virtual BOOL OnNotify(int /*idCtrl*/, NMHDR* /*pnmh*/) { return FALSE; }
virtual BOOL OnMeasureItem(MEASUREITEMSTRUCT*) { return FALSE; }
@@ -395,10 +395,10 @@ public:
virtual void OnReset();
protected:
- HWND m_hwnd = nullptr; // must be the first data item
int m_idCtrl;
- CDlgBase* m_parentWnd;
bool m_bChanged = false, m_bSilent = false, m_bUseSystemColors = false, m_bNotifiable = false;
+ MWindow m_hwnd = nullptr; // must be the first data item
+ CDlgBase *m_parentWnd;
public:
CCallback<CCtrlBase> OnChange;
@@ -412,7 +412,7 @@ protected:
void Unsubclass();
private:
- static LRESULT CALLBACK GlobalSubclassWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+ static LRESULT CALLBACK GlobalSubclassWndProc(MWindow hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
};
/////////////////////////////////////////////////////////////////////////////////////////
@@ -464,7 +464,7 @@ public:
void EndModal(INT_PTR nResult);
class CCtrlBase* FindControl(int idCtrl);
- class CCtrlBase* FindControl(HWND hwnd);
+ class CCtrlBase* FindControl(MWindow hwnd);
void SetCaption(const wchar_t *ptszCaption);
void SetDraw(bool bEnable);
@@ -472,19 +472,19 @@ public:
HINSTANCE GetInst() const;
- __forceinline HWND GetHwnd() const { return m_hwnd; }
+ __forceinline MWindow GetHwnd() const { return m_hwnd; }
__forceinline void Hide() { Show(SW_HIDE); }
__forceinline bool IsInitialized() const { return m_bInitialized; }
__forceinline void SetMinSize(int x, int y) { m_iMinWidth = x, m_iMinHeight = y; }
- __forceinline void SetParent(HWND hwnd) { m_hwndParent = hwnd; }
+ __forceinline void SetParent(MWindow hwnd) { m_hwndParent = hwnd; }
__forceinline CCtrlBase* operator[](int iControlId) { return FindControl(iControlId); }
- static CDlgBase* Find(HWND hwnd);
+ static CDlgBase* Find(MWindow hwnd);
protected:
- HWND m_hwnd = nullptr; // must be the first data item
- HWND m_hwndParent = nullptr;
+ MWindow m_hwnd = nullptr; // must be the first data item
+ MWindow m_hwndParent = nullptr;
int m_idDialog;
bool m_isModal = false;
@@ -548,9 +548,9 @@ private:
CTimer* FindTimer(int idEvent);
int m_iMinWidth = -1, m_iMinHeight = -1;
- static BOOL CALLBACK GlobalFieldEnum(HWND hwnd, LPARAM lParam);
- static INT_PTR CALLBACK GlobalDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
- static int GlobalDlgResizer(HWND hwnd, LPARAM lParam, UTILRESIZECONTROL *urc);
+ static BOOL CALLBACK GlobalFieldEnum(MWindow hwnd, LPARAM lParam);
+ static INT_PTR CALLBACK GlobalDlgProc(MWindow hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+ static int GlobalDlgResizer(MWindow hwnd, LPARAM lParam, UTILRESIZECONTROL *urc);
};
/////////////////////////////////////////////////////////////////////////////////////////
@@ -565,7 +565,7 @@ public:
~CTimer();
__forceinline UINT_PTR GetEventId() const { return m_idEvent; }
- __forceinline HWND GetHwnd() const { return m_wnd->GetHwnd(); }
+ __forceinline MWindow GetHwnd() const { return m_wnd->GetHwnd(); }
virtual BOOL OnTimer();
@@ -603,7 +603,7 @@ class MIR_CORE_EXPORT CCtrlButton : public CCtrlBase
public:
CCtrlButton(CDlgBase *dlg, int ctrlId);
- BOOL OnCommand(HWND hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
+ BOOL OnCommand(MWindow hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
CCallback<CCtrlButton> OnClick;
@@ -663,7 +663,7 @@ class MIR_CORE_EXPORT CCtrlHyperlink : public CCtrlBase
public:
CCtrlHyperlink(CDlgBase *dlg, int ctrlId, const char* url = nullptr);
- BOOL OnCommand(HWND hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
+ BOOL OnCommand(MWindow hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
CCallback<CCtrlHyperlink> OnClick;
@@ -718,7 +718,7 @@ public:
COLORREF GetBkColor() const;
bool GetCheck(HANDLE hItem) const;
int GetCount() const;
- HWND GetEditControl() const;
+ MWindow GetEditControl() const;
uint32_t GetExStyle() const;
uint32_t GetExpand(HANDLE hItem) const;
int GetExtraColumns() const;
@@ -776,7 +776,7 @@ class MIR_CORE_EXPORT CCtrlCheck : public CCtrlData
public:
CCtrlCheck(CDlgBase *dlg, int ctrlId);
- BOOL OnCommand(HWND /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) override;
+ BOOL OnCommand(MWindow /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) override;
bool OnApply() override;
void OnReset() override;
@@ -796,7 +796,7 @@ class MIR_CORE_EXPORT CCtrlColor : public CCtrlData
public:
CCtrlColor(CDlgBase *dlg, int ctrlId);
- BOOL OnCommand(HWND /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) override;
+ BOOL OnCommand(MWindow /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t /*idCode*/) override;
bool OnApply() override;
void OnReset() override;
@@ -830,7 +830,7 @@ class MIR_CORE_EXPORT CCtrlEdit : public CCtrlData
public:
CCtrlEdit(CDlgBase *dlg, int ctrlId);
- BOOL OnCommand(HWND /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t idCode) override;
+ BOOL OnCommand(MWindow /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t idCode) override;
bool OnApply() override;
void OnReset() override;
@@ -873,7 +873,7 @@ class MIR_CORE_EXPORT CCtrlSlider : public CCtrlData
int m_wMin, m_wMax;
protected:
- BOOL OnCommand(HWND hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
+ BOOL OnCommand(MWindow hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
public:
CCtrlSlider(CDlgBase *dlg, int ctrlId, int max = 100, int min = 0);
@@ -943,7 +943,7 @@ public:
CCallback<CCtrlListBox> OnSelChange;
protected:
- BOOL OnCommand(HWND hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
+ BOOL OnCommand(MWindow hwndCtrl, uint16_t idCtrl, uint16_t idCode) override;
void GetCaretPos(CContextMenuPos&) const override;
};
@@ -957,7 +957,7 @@ class MIR_CORE_EXPORT CCtrlCombo : public CCtrlData
public:
CCtrlCombo(CDlgBase *dlg, int ctrlId);
- BOOL OnCommand(HWND /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t idCode) override;
+ BOOL OnCommand(MWindow /*hwndCtrl*/, uint16_t /*idCtrl*/, uint16_t idCode) override;
void OnInit() override;
bool OnApply() override;
void OnReset() override;
@@ -1017,7 +1017,7 @@ public:
void DeleteAllItems();
void DeleteColumn(int iCol);
void DeleteItem(int iItem);
- HWND EditLabel(int iItem);
+ MWindow EditLabel(int iItem);
int EnableGroupView(BOOL fEnable);
BOOL EnsureVisible(int i, BOOL fPartialOK);
int FindItem(int iStart, const LVFINDINFO *plvfi);
@@ -1029,7 +1029,7 @@ public:
void GetColumnOrderArray(int iCount, int *lpiArray) const;
int GetColumnWidth(int iCol) const;
int GetCountPerPage() const;
- HWND GetEditControl() const;
+ MWindow GetEditControl() const;
uint32_t GetExtendedListViewStyle() const;
int GetFocusedGroup() const;
int GetGroupCount() const;
@@ -1037,7 +1037,7 @@ public:
void GetGroupInfoByIndex(int iIndex, LVGROUP *pgrp) const;
void GetGroupMetrics(LVGROUPMETRICS *pGroupMetrics) const;
UINT GetGroupState(UINT dwGroupId, UINT dwMask) const;
- HWND GetHeader() const;
+ MWindow GetHeader() const;
HCURSOR GetHotCursor() const;
int GetHotItem() const;
uint32_t GetHoverTime() const;
@@ -1066,7 +1066,7 @@ public:
COLORREF GetTextColor() const;
void GetTileInfo(LVTILEINFO *plvtinfo) const;
void GetTileViewInfo(LVTILEVIEWINFO *plvtvinfo) const;
- HWND GetToolTips() const;
+ MWindow GetToolTips() const;
int GetTopIndex() const;
BOOL GetUnicodeFormat() const;
uint32_t GetView() const;
@@ -1122,7 +1122,7 @@ public:
BOOL SetTextColor(COLORREF clrText);
BOOL SetTileInfo(LVTILEINFO *plvtinfo);
BOOL SetTileViewInfo(LVTILEVIEWINFO *plvtvinfo);
- HWND SetToolTips(HWND ToolTip);
+ MWindow SetToolTips(MWindow ToolTip);
BOOL SetUnicodeFormat(BOOL fUnicode);
int SetView(uint32_t iView);
void SetWorkAreas(int nWorkAreas, RECT *lprc);
@@ -1214,7 +1214,7 @@ public:
HIMAGELIST CreateDragImage(HTREEITEM hItem);
void DeleteAllItems();
void DeleteItem(HTREEITEM hItem);
- HWND EditLabel(HTREEITEM hItem);
+ MWindow EditLabel(HTREEITEM hItem);
void EndEditLabelNow(BOOL cancel);
void EnsureVisible(HTREEITEM hItem);
void Expand(HTREEITEM hItem, uint32_t flag);
@@ -1223,7 +1223,7 @@ public:
HTREEITEM GetChild(HTREEITEM hItem) const;
int GetCount() const;
HTREEITEM GetDropHilight() const;
- HWND GetEditControl() const;
+ MWindow GetEditControl() const;
HTREEITEM GetFirstVisible() const;
HIMAGELIST GetImageList(int iImage) const;
int GetIndent() const;
@@ -1244,7 +1244,7 @@ public:
uint32_t GetScrollTime() const;
HTREEITEM GetSelection() const;
COLORREF GetTextColor() const;
- HWND GetToolTips() const;
+ MWindow GetToolTips() const;
BOOL GetUnicodeFormat() const;
unsigned GetVisibleCount() const;
HTREEITEM HitTest(TVHITTESTINFO *hti) const;
@@ -1265,7 +1265,7 @@ public:
COLORREF SetLineColor(COLORREF clLine);
void SetScrollTime(UINT uMaxScrollTime);
COLORREF SetTextColor(COLORREF clText);
- HWND SetToolTips(HWND hwndToolTips);
+ MWindow SetToolTips(MWindow hwndToolTips);
BOOL SetUnicodeFormat(BOOL fUnicode);
void SortChildren(HTREEITEM hItem, BOOL fRecurse);
void SortChildrenCB(TVSORTCB *cb, BOOL fRecurse);
@@ -1483,7 +1483,7 @@ public:
protected:
PROTO_INTERFACE *m_proto_interface;
- HWND m_hwndStatus = nullptr;
+ MWindow m_hwndStatus = nullptr;
INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) override;
diff --git a/include/m_icolib.h b/include/m_icolib.h
index b04a3a9d07..a732a8a320 100644
--- a/include/m_icolib.h
+++ b/include/m_icolib.h
@@ -99,17 +99,17 @@ MIR_APP_DLL(HANDLE) IcoLib_IsManaged(HICON hIcon);
///////////////////////////////////////////////////////////////////////////////
// Helper to apply an icolib's icon to a button
-MIR_APP_DLL(void) Button_SetIcon_IcoLib(HWND hDlg, int itemId, HANDLE hIcolib, const char *tooltip = nullptr);
-MIR_APP_DLL(void) Button_SetSkin_IcoLib(HWND hDlg, int itemId, int skinIconId, const char *tooltip = nullptr);
-MIR_APP_DLL(void) Button_FreeIcon_IcoLib(HWND hDlg, int itemId);
+MIR_APP_DLL(void) Button_SetIcon_IcoLib(MWindow hDlg, int itemId, HANDLE hIcolib, const char *tooltip = nullptr);
+MIR_APP_DLL(void) Button_SetSkin_IcoLib(MWindow hDlg, int itemId, int skinIconId, const char *tooltip = nullptr);
+MIR_APP_DLL(void) Button_FreeIcon_IcoLib(MWindow hDlg, int itemId);
///////////////////////////////////////////////////////////////////////////////
// Helper to apply an icolib's icon to a window
-MIR_APP_DLL(void) Window_SetIcon_IcoLib(HWND hWnd, HANDLE hIcolib);
-MIR_APP_DLL(void) Window_SetSkinIcon_IcoLib(HWND hWnd, int iconId);
-MIR_APP_DLL(void) Window_SetProtoIcon_IcoLib(HWND hWnd, const char *szProto, int iconId);
-MIR_APP_DLL(void) Window_FreeIcon_IcoLib(HWND hWnd);
+MIR_APP_DLL(void) Window_SetIcon_IcoLib(MWindow hWnd, HANDLE hIcolib);
+MIR_APP_DLL(void) Window_SetSkinIcon_IcoLib(MWindow hWnd, int iconId);
+MIR_APP_DLL(void) Window_SetProtoIcon_IcoLib(MWindow hWnd, const char *szProto, int iconId);
+MIR_APP_DLL(void) Window_FreeIcon_IcoLib(MWindow hWnd);
///////////////////////////////////////////////////////////////////////////////
// Helper to add an icolib's icon to a HIMAGELIST
diff --git a/include/m_types.h b/include/m_types.h
index f07427c1b3..1b0bdeb3bf 100644
--- a/include/m_types.h
+++ b/include/m_types.h
@@ -95,6 +95,8 @@ struct LOGFONTA;
struct LOGFONTW;
struct WIN32_FIND_DATA;
+#define GetCurrentThreadId pthread_self
+
#define MIR_EXPORT __attribute__((__visibility__("default")))
#define MIR_IMPORT
#define MIR_SYSCALL
@@ -183,6 +185,12 @@ struct TVINSERTSTRUCT;
struct TVSORTCB;
struct _TREEITEM;
+#ifdef ELEMENTARY_H
+ typedef Evas_Object* MWindow;
+#else
+ typedef void *MWindow;
+#endif
+
#else
///////////////////////////////////////////////////////////////////////////////
// Windows
@@ -195,6 +203,8 @@ struct _TREEITEM;
#define MIR_SYSCALL __stdcall
#define MIR_CDECL __cdecl
+typedef HWND MWindow;
+
#endif
#endif // M_TYPES_H__
diff --git a/include/newpluginapi.h b/include/newpluginapi.h
index 7081bd4f73..7b852b7af4 100644
--- a/include/newpluginapi.h
+++ b/include/newpluginapi.h
@@ -100,12 +100,12 @@ MIR_APP_DLL(void) SetPluginOnWhiteList(const char *szPluginName, bool bAllow);
struct PLUGININFOEX
{
int cbSize;
- char *shortName;
+ const char *shortName;
uint32_t version;
- char *description;
- char *author;
- char *copyright;
- char *homepage;
+ const char *description;
+ const char *author;
+ const char *copyright;
+ const char *homepage;
uint8_t flags; // right now the only flag, UNICODE_AWARE, is recognized here
MUUID uuid; // plugin's unique identifier
};
diff --git a/src/mir_app/mir_app.mk b/src/mir_app/mir_app.mk
index 5163e32169..67afc86242 100644
--- a/src/mir_app/mir_app.mk
+++ b/src/mir_app/mir_app.mk
@@ -14,7 +14,7 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=George Hazan
-Date :=10/05/22
+Date :=17/05/22
CodeLitePath :=/home/ghazan/.codelite
MakeDirCommand :=mkdir -p
LinkerName :=g++
@@ -62,7 +62,7 @@ AS := as
## User defined environment variables
##
CodeLiteDir:=/usr/share/codelite
-Objects0=$(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_events.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_CMPluginBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_addcontact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_stdafx.cxx$(ObjectSuffix)
+Objects0=$(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_events.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_CMPluginBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_addcontact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_stdafx.cxx$(ObjectSuffix)
@@ -99,11 +99,6 @@ $(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix): src/miranda.cpp
$(IntermediateDirectory)/src_miranda.cpp$(PreprocessSuffix): src/miranda.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_miranda.cpp$(PreprocessSuffix) src/miranda.cpp
-$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix): src/database.cpp
- $(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/database.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IncludePath)
-$(IntermediateDirectory)/src_database.cpp$(PreprocessSuffix): src/database.cpp
- $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_database.cpp$(PreprocessSuffix) src/database.cpp
-
$(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix): src/db_intf.cpp
$(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/db_intf.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/src_db_intf.cpp$(PreprocessSuffix): src/db_intf.cpp
@@ -114,6 +109,11 @@ $(IntermediateDirectory)/src_db_events.cpp$(ObjectSuffix): src/db_events.cpp
$(IntermediateDirectory)/src_db_events.cpp$(PreprocessSuffix): src/db_events.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_db_events.cpp$(PreprocessSuffix) src/db_events.cpp
+$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix): src/database.cpp
+ $(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/database.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IncludePath)
+$(IntermediateDirectory)/src_database.cpp$(PreprocessSuffix): src/database.cpp
+ $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_database.cpp$(PreprocessSuffix) src/database.cpp
+
$(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix): src/contact.cpp
$(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/contact.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/src_contact.cpp$(PreprocessSuffix): src/contact.cpp
diff --git a/src/mir_app/src/miranda.cpp b/src/mir_app/src/miranda.cpp
index 12c4d64c69..4f6e7b1beb 100644
--- a/src/mir_app/src/miranda.cpp
+++ b/src/mir_app/src/miranda.cpp
@@ -61,6 +61,8 @@ CMPlugin::CMPlugin() :
PLUGIN<CMPlugin>(nullptr, pluginInfoEx)
{}
+#ifdef _WINDOWS
+
/////////////////////////////////////////////////////////////////////////////////////////
// dll entry point
@@ -83,6 +85,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, uint32_t dwReason, LPVOID)
return TRUE;
}
+#endif
+
/////////////////////////////////////////////////////////////////////////////////////////
static int SystemShutdownProc(WPARAM, LPARAM)
@@ -117,10 +121,13 @@ protected:
{
if (m_progress.Move() == MIRANDA_PROCESS_WAIT_STEPS)
EndModal(0);
- if (WaitForSingleObject(m_hProcess, 1) != WAIT_TIMEOUT) {
- m_progress.SetPosition(MIRANDA_PROCESS_WAIT_STEPS);
- EndModal(0);
- }
+
+ #ifdef _WINDOWS
+ if (WaitForSingleObject(m_hProcess, 1) != WAIT_TIMEOUT) {
+ m_progress.SetPosition(MIRANDA_PROCESS_WAIT_STEPS);
+ EndModal(0);
+ }
+ #endif
}
void Cancel_OnClick(CCtrlBase*)
@@ -145,12 +152,14 @@ INT_PTR CheckRestart()
{
LPCTSTR tszPID = CmdLine_GetOption(L"restart");
if (tszPID) {
- HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, _wtol(tszPID));
- if (hProcess) {
- INT_PTR result = CWaitRestartDlg(hProcess).DoModal();
- CloseHandle(hProcess);
- return result;
- }
+ #ifdef _WINDOWS
+ HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, _wtol(tszPID));
+ if (hProcess) {
+ INT_PTR result = CWaitRestartDlg(hProcess).DoModal();
+ CloseHandle(hProcess);
+ return result;
+ }
+ #endif
}
return 0;
}
@@ -171,7 +180,7 @@ static MSystemWindow *g_pSystemWindow;
/////////////////////////////////////////////////////////////////////////////////////////
-int WINAPI mir_main(LPTSTR cmdLine)
+int CALLBACK mir_main(LPTSTR cmdLine)
{
hMainThreadId = GetCurrentThreadId();
@@ -227,15 +236,19 @@ MIR_APP_DLL(bool) Miranda_OkToExit()
MIR_APP_DLL(void) Miranda_Close()
{
while (!Miranda_OkToExit()) {
- MSG msg;
- while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- Sleep(0);
+ #ifdef _WINDOWS
+ MSG msg;
+ while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ Sleep(0);
+ #endif
}
- DestroyWindow(g_clistApi.hwndContactList);
+ #ifdef _WINDOWS
+ DestroyWindow(g_clistApi.hwndContactList);
+ #endif
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -243,53 +256,67 @@ MIR_APP_DLL(void) Miranda_Close()
MIR_APP_DLL(uint32_t) Miranda_GetVersion()
{
- wchar_t filename[MAX_PATH];
- GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
-
- DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
- PVOID pVerInfo = _alloca(verInfoSize);
- GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
-
- UINT blockSize;
- VS_FIXEDFILEINFO *vsffi;
- VerQueryValue(pVerInfo, L"\\", (PVOID*)&vsffi, &blockSize);
- return (((vsffi->dwProductVersionMS >> 16) & 0xFF) << 24) |
- ((vsffi->dwProductVersionMS & 0xFF) << 16) |
- (((vsffi->dwProductVersionLS >> 16) & 0xFF) << 8) |
- (vsffi->dwProductVersionLS & 0xFF);
+ #ifdef _WINDOWS
+ wchar_t filename[MAX_PATH];
+ GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
+
+ DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
+ PVOID pVerInfo = _alloca(verInfoSize);
+ GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
+
+ UINT blockSize;
+ VS_FIXEDFILEINFO *vsffi;
+ VerQueryValue(pVerInfo, L"\\", (PVOID*)&vsffi, &blockSize);
+ return (((vsffi->dwProductVersionMS >> 16) & 0xFF) << 24) |
+ ((vsffi->dwProductVersionMS & 0xFF) << 16) |
+ (((vsffi->dwProductVersionLS >> 16) & 0xFF) << 8) |
+ (vsffi->dwProductVersionLS & 0xFF);
+ #else
+ return MIRANDA_VERSION_DWORD;
+ #endif
}
MIR_APP_DLL(void) Miranda_GetFileVersion(MFileVersion *pVer)
{
- wchar_t filename[MAX_PATH];
- GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
-
- DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
- PVOID pVerInfo = _alloca(verInfoSize);
- GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
-
- UINT blockSize;
- VS_FIXEDFILEINFO *vsffi;
- VerQueryValue(pVerInfo, L"\\", (PVOID*)&vsffi, &blockSize);
-
- (*pVer)[0] = HIWORD(vsffi->dwProductVersionMS);
- (*pVer)[1] = LOWORD(vsffi->dwProductVersionMS);
- (*pVer)[2] = HIWORD(vsffi->dwProductVersionLS);
- (*pVer)[3] = LOWORD(vsffi->dwProductVersionLS);
+ #ifdef _WINDOWS
+ wchar_t filename[MAX_PATH];
+ GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
+
+ DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
+ PVOID pVerInfo = _alloca(verInfoSize);
+ GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
+
+ UINT blockSize;
+ VS_FIXEDFILEINFO *vsffi;
+ VerQueryValue(pVerInfo, L"\\", (PVOID*)&vsffi, &blockSize);
+
+ (*pVer)[0] = HIWORD(vsffi->dwProductVersionMS);
+ (*pVer)[1] = LOWORD(vsffi->dwProductVersionMS);
+ (*pVer)[2] = HIWORD(vsffi->dwProductVersionLS);
+ (*pVer)[3] = LOWORD(vsffi->dwProductVersionLS);
+ #else
+ uint16_t tmp[4] = { MIRANDA_VERSION_FILEVERSION };
+ memcpy(pVer, tmp, sizeof(tmp));
+ #endif
}
MIR_APP_DLL(void) Miranda_GetVersionText(char *pDest, size_t cbSize)
{
- wchar_t filename[MAX_PATH], *productVersion;
- GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
-
- DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
- PVOID pVerInfo = _alloca(verInfoSize);
- GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
+ #ifdef _WINDOWS
+ wchar_t filename[MAX_PATH], *productVersion;
+ GetModuleFileName(g_plugin.getInst(), filename, _countof(filename));
+
+ DWORD unused, verInfoSize = GetFileVersionInfoSize(filename, &unused);
+ PVOID pVerInfo = _alloca(verInfoSize);
+ GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
+
+ UINT blockSize;
+ VerQueryValue(pVerInfo, L"\\StringFileInfo\\000004b0\\ProductVersion", (LPVOID*)&productVersion, &blockSize);
+ strncpy_s(pDest, cbSize, _T2A(productVersion), _TRUNCATE);
+ #else
+ strncpy_s(pDest, cbSize, "Miranda NG " MIRANDA_VERSION_DISPLAY, _TRUNCATE);
+ #endif
- UINT blockSize;
- VerQueryValue(pVerInfo, L"\\StringFileInfo\\000004b0\\ProductVersion", (LPVOID*)&productVersion, &blockSize);
- strncpy_s(pDest, cbSize, _T2A(productVersion), _TRUNCATE);
#if defined(_WIN64)
strcat_s(pDest, cbSize, " x64");
#endif
diff --git a/src/mir_app/src/stdafx.h b/src/mir_app/src/stdafx.h
index d6770083fa..9e8bb456c8 100644
--- a/src/mir_app/src/stdafx.h
+++ b/src/mir_app/src/stdafx.h
@@ -41,6 +41,8 @@ typedef struct SslHandle *HSSL;
#include <io.h>
#include <direct.h>
#include <process.h>
+#else
+ #include <pthread.h>
#endif
#include <assert.h>
diff --git a/src/mir_core/src/Linux/CCtrlBase.cpp b/src/mir_core/src/Linux/CCtrlBase.cpp
index 61d03c99af..cba8567e52 100644
--- a/src/mir_core/src/Linux/CCtrlBase.cpp
+++ b/src/mir_core/src/Linux/CCtrlBase.cpp
@@ -28,6 +28,7 @@ static int CompareControls(const CCtrlBase *p1, const CCtrlBase *p2)
{
return (INT_PTR)p1->GetHwnd() - (INT_PTR)p2->GetHwnd();
}
+
static LIST<CCtrlBase> arControls(10, CompareControls);
/////////////////////////////////////////////////////////////////////////////////////////
@@ -60,6 +61,7 @@ void CCtrlBase::OnDestroy()
arControls.remove(pCtrl);
}
+ evas_object_del(m_hwnd);
m_hwnd = nullptr;
}
diff --git a/src/mir_core/src/Linux/CCtrlButton.cpp b/src/mir_core/src/Linux/CCtrlButton.cpp
index 1fb547bef8..e8c107b888 100644
--- a/src/mir_core/src/Linux/CCtrlButton.cpp
+++ b/src/mir_core/src/Linux/CCtrlButton.cpp
@@ -29,7 +29,7 @@ CCtrlButton::CCtrlButton(CDlgBase* wnd, int idCtrl)
: CCtrlBase(wnd, idCtrl)
{}
-BOOL CCtrlButton::OnCommand(HWND, uint16_t, uint16_t idCode)
+BOOL CCtrlButton::OnCommand(MWindow, uint16_t, uint16_t idCode)
{
// if (idCode == BN_CLICKED)
// OnClick(this);
diff --git a/src/mir_core/src/Linux/CCtrlCheck.cpp b/src/mir_core/src/Linux/CCtrlCheck.cpp
index 15c9ab0f1b..7c821f0329 100644
--- a/src/mir_core/src/Linux/CCtrlCheck.cpp
+++ b/src/mir_core/src/Linux/CCtrlCheck.cpp
@@ -31,7 +31,7 @@ CCtrlCheck::CCtrlCheck(CDlgBase *dlg, int ctrlId)
m_bNotifiable = true;
}
-BOOL CCtrlCheck::OnCommand(HWND, uint16_t, uint16_t)
+BOOL CCtrlCheck::OnCommand(MWindow, uint16_t, uint16_t)
{
NotifyChange();
return TRUE;
diff --git a/src/mir_core/src/Linux/CCtrlCombo.cpp b/src/mir_core/src/Linux/CCtrlCombo.cpp
index 905ebc7a24..063588e39e 100644
--- a/src/mir_core/src/Linux/CCtrlCombo.cpp
+++ b/src/mir_core/src/Linux/CCtrlCombo.cpp
@@ -29,7 +29,7 @@ CCtrlCombo::CCtrlCombo(CDlgBase *dlg, int ctrlId)
: CCtrlData(dlg, ctrlId)
{}
-BOOL CCtrlCombo::OnCommand(HWND, uint16_t, uint16_t idCode)
+BOOL CCtrlCombo::OnCommand(MWindow, uint16_t, uint16_t idCode)
{
switch (idCode) {
// case CBN_CLOSEUP: OnCloseup(this); break;
diff --git a/src/mir_core/src/Linux/CCtrlEdit.cpp b/src/mir_core/src/Linux/CCtrlEdit.cpp
index b2b5e14d46..7f1ac14cc2 100644
--- a/src/mir_core/src/Linux/CCtrlEdit.cpp
+++ b/src/mir_core/src/Linux/CCtrlEdit.cpp
@@ -29,7 +29,7 @@ CCtrlEdit::CCtrlEdit(CDlgBase *dlg, int ctrlId)
: CCtrlData(dlg, ctrlId)
{}
-BOOL CCtrlEdit::OnCommand(HWND, uint16_t, uint16_t idCode)
+BOOL CCtrlEdit::OnCommand(MWindow, uint16_t, uint16_t idCode)
{
// if (idCode == EN_CHANGE)
// NotifyChange();
diff --git a/src/mir_core/src/Linux/CDlgBase.cpp b/src/mir_core/src/Linux/CDlgBase.cpp
index 425e71ee31..3504a7e74c 100644
--- a/src/mir_core/src/Linux/CDlgBase.cpp
+++ b/src/mir_core/src/Linux/CDlgBase.cpp
@@ -175,7 +175,7 @@ int CDlgBase::Resizer(UTILRESIZECONTROL*)
return RD_ANCHORX_LEFT | RD_ANCHORY_TOP;
}
-BOOL CALLBACK CDlgBase::GlobalFieldEnum(HWND hwnd, LPARAM lParam)
+BOOL CALLBACK CDlgBase::GlobalFieldEnum(MWindow hwnd, LPARAM lParam)
{
return TRUE;
}
@@ -185,7 +185,7 @@ INT_PTR CDlgBase::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
return FALSE;
}
-int CDlgBase::GlobalDlgResizer(HWND hwnd, LPARAM, UTILRESIZECONTROL *urc)
+int CDlgBase::GlobalDlgResizer(MWindow hwnd, LPARAM, UTILRESIZECONTROL *urc)
{
CDlgBase *wnd = CDlgBase::Find(hwnd);
return (wnd == nullptr) ? 0 : wnd->Resizer(urc);
@@ -226,7 +226,7 @@ CCtrlBase* CDlgBase::FindControl(int idCtrl)
return m_controls.find(&search);
}
-CCtrlBase* CDlgBase::FindControl(HWND hwnd)
+CCtrlBase* CDlgBase::FindControl(MWindow hwnd)
{
for (auto &it : m_controls)
if (it->GetHwnd() == hwnd)
@@ -252,7 +252,7 @@ CTimer* CDlgBase::FindTimer(int idEvent)
return m_timers.find(&search);
}
-CDlgBase* CDlgBase::Find(HWND hwnd)
+CDlgBase* CDlgBase::Find(MWindow hwnd)
{
void *bullshit[2]; // vfptr + hwnd
bullshit[1] = hwnd;