wxIFM 1.0.5 - docking library for wxWidgets

Do you like to promote your wxWidgets based application or component!? Post it here and let's see what the critics have to say. Also, if you found that ONE wx component the world needs to know about, put it here for future reference.
SnakeChomp
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Sun Oct 10, 2004 2:53 am

Post by SnakeChomp »

eranif wrote:- wxIFM flickers (the caption of windows) when resizing the entire frame - while the SAME code managed by wxAUI it is not flickering at all ( I did not changed a single code line, only replaced the docking library)
You are simply wrong. Go download the demo currently available for win32 from www.snakesoft.net/wxifm and tell me it flickers. It doesn't, and hasn't since 1.0.4.
- When dragging a window over wxSTC or any other wxScintilla derived class, the dragged window leaves trail of it, while it is not leaving any trail using wxAUI.
And when I drag a wxIFM floating window over a wxTextCtrl, it redraws fine. Conclusion: wxSTC's problem or a wxWidgets implementational quirk which is reacting negatively with wxSTC.

I have my own editor which I wrote using the win32 api directly and also uses scintilla. If I drag a wxIFM floating window over this application, no artifacts are left in my scintilla window. This is further proof that it is wxSTC/wxWidgets fault and not mine.

Edit: To clarify what I mean by "implementational quirk", there was a bug that was fixed which was effecting wxAUI recently where status bars would corrupt windows above them when resizing the app. This bug was caused by not including the flag SWP_NOCOPYBITS in a call to SetWindowPos. I wouldn't really call it a bug not including this flag, but it caused an issue in wxAUI's particular situation. Many other applciations were not effected. A similar "implementational quirk" could be causing issues with wxSTC and wxIFM while not causing issues in other situations.
automatix_md
Knows some wx things
Knows some wx things
Posts: 42
Joined: Tue Mar 29, 2005 10:15 am
Location: magdeburg, germany

Post by automatix_md »

@SnakeChomp
It is possible to build wxIFM as a DLL (Shared Library) or a static library.
...
As of this writing, DLL builds of wxIFM are only officially supported if you are building wxIFM using the provided Visual Studio 2003 project files.
I use msvc express 2005 (msvc8) with your project files. what i try to do is to build a dynamic version of wxIFM 1.0.5 (like announcement say it's possible), but i didn't get it up. All i can figure out is that for some strange reasons i got unresolved symbols and a lot of warnings ( i don't care the warnings @ moment). So in release dll build i get two:
manager.obj : error LNK2019: link to unresolved symbol ""__declspec(dllimport) public: void __thiscall wxRectArray::Empty(void)" (__imp_?Empty@wxRectArray@@QAEXXZ)" in function ""public: __thiscall wxRectArray::~wxRectArray(void)" (??1wxRectArray@@QAE@XZ)".
manager.obj : error LNK2019: link to unresolved symbol ""__declspec(dllimport) public: void __thiscall wxSizeArray::Empty(void)" (__imp_?Empty@wxSizeArray@@QAEXXZ)" in function ""public: __thiscall wxSizeArray::~wxSizeArray(void)" (??1wxSizeArray@@QAE@XZ)".

In Debug version some more. So maybe you could reponse to me whats wrong. I don' t want to switch to an other lib, but if i didn't get it to work i have to.

By the way: here http://forums.wxwidgets.org/viewtopic.php?t=6960 some ideas (in deep only one) but we didn't figure it out.


thx a lot
RealityMage
Experienced Solver
Experienced Solver
Posts: 75
Joined: Tue Aug 23, 2005 3:47 am

Post by RealityMage »

I get this error when I try to compile under GTK2.

Code: Select all

----------Configuration: wxIFM-beta1 - Debug----------
Compiling src/ifm/definterface.cpp
src/ifm/definterface.cpp: In member function `void wxIFMTabConfig::set_font(const wxFont&)':
src/ifm/definterface.cpp:3350: error: aggregate `wxMemoryDC dc' has incomplete type and cannot be defined
src/ifm/definterface.cpp: In member function `void wxIFMCaptionConfig::set_font(const wxFont&)':
src/ifm/definterface.cpp:3436: error: aggregate `wxMemoryDC dc' has incomplete type and cannot be defined
make: *** [Debug/definterface.o] Error 1
RealityMage
Experienced Solver
Experienced Solver
Posts: 75
Joined: Tue Aug 23, 2005 3:47 am

Post by RealityMage »

Don't give up on wxIFM. I still think it's better than wxAUI because AUI completely lacks tabbed support and uses an unintuitive placing system. At least the two are, in my opinion, serious competitors on about the same level.

Patch to get this to compile under GTK2 Unicode follows.

Code: Select all

diff -ur wxIFM/include/wx/ifm/definterface.h wxIFMnew/include/wx/ifm/definterface.h
--- wxIFM/include/wx/ifm/definterface.h 2005-11-23 16:16:52.000000000 -0800
+++ wxIFMnew/include/wx/ifm/definterface.h      2006-04-07 12:26:04.263249613 -0700
@@ -19,6 +19,7 @@
 #include "wx/bitmap.h"
 #include "wx/pen.h"
 #include "wx/brush.h"
+#include <wx/dcmemory.h>

 //#include <list>
 //#include <vector>
Only in wxIFMnew/lib: libwx_gtk2_ifm-2.6.a
Only in wxIFMnew/lib: libwx_gtk2_ifm-2.6d.a
diff -ur wxIFM/Makefile.Debug.unix wxIFMnew/Makefile.Debug.unix
--- wxIFM/Makefile.Debug.unix   2005-11-23 16:23:34.000000000 -0800
+++ wxIFMnew/Makefile.Debug.unix        2006-04-07 12:33:37.747396668 -0700
@@ -17,9 +17,9 @@
   OBJ_DIR = Debug
   OUTPUT_DIR = ./lib
   TARGET = libwx_gtk2_ifm-2.6d.a
-  C_INCLUDE_DIRS = -I"./include" -I"./"
+  C_INCLUDE_DIRS = -I"./include" -I"./" -I"./src/ifm/xpm/"
   C_PREPROC =
-  CFLAGS = -pipe `wx-config --cxxflags` -Wall -g2 -O0 -frtti -fexceptions
+  CFLAGS = -pipe `wx-config --cxxflags --debug` -Wall -g2 -O0 -frtti -fexceptions
   ARFLAGS =  rcs
 endif

@@ -27,7 +27,7 @@
   OBJ_DIR = Release
   OUTPUT_DIR = ./lib
   TARGET = libwx_gtk2_ifm-2.6.a
-  C_INCLUDE_DIRS = -I"./include" -I"./"
+  C_INCLUDE_DIRS = -I"./include" -I"./" -I"./src/ifm/xpm/"
   C_PREPROC =
   CFLAGS = -pipe `wx-config --cxxflags` -Wall -g0 -O2 -frtti -fexceptions
   ARFLAGS =  rcs
@@ -106,4 +106,4 @@

 $(OBJ_DIR)/defplugin.o: src/ifm/defplugin.cpp

-       $(compile_source)
\ No newline at end of file
+       $(compile_source)
diff -ur wxIFM/Makefile.Release.unix wxIFMnew/Makefile.Release.unix
--- wxIFM/Makefile.Release.unix 2005-11-23 16:24:24.000000000 -0800
+++ wxIFMnew/Makefile.Release.unix      2006-04-07 12:32:37.865712645 -0700
@@ -17,9 +17,9 @@
   OBJ_DIR = Debug
   OUTPUT_DIR = ./lib
   TARGET = libwx_gtk2_ifm-2.6d.a
-  C_INCLUDE_DIRS = -I"./include" -I"./"
+  C_INCLUDE_DIRS = -I"./include" -I"./" -I"./src/ifm/xpm/"
   C_PREPROC =
-  CFLAGS = -pipe `wx-config --cxxflags` -Wall -g2 -O0 -frtti -fexceptions
+  CFLAGS = -pipe `wx-config --cxxflags --debug` -Wall -g2 -O0 -frtti -fexceptions
   ARFLAGS =  rcs
 endif

@@ -27,7 +27,7 @@
   OBJ_DIR = Release
   OUTPUT_DIR = ./lib
   TARGET = libwx_gtk2_ifm-2.6.a
-  C_INCLUDE_DIRS = -I"./include" -I"./"
+  C_INCLUDE_DIRS = -I"./include" -I"./" -I"./src/ifm/xpm/"
   C_PREPROC =
   CFLAGS = -pipe `wx-config --cxxflags` -Wall -g0 -O2 -frtti -fexceptions
   ARFLAGS =  rcs
diff -ur wxIFM/src/ifm/definterface.cpp wxIFMnew/src/ifm/definterface.cpp
--- wxIFM/src/ifm/definterface.cpp      2005-12-01 17:53:24.000000000 -0800
+++ wxIFMnew/src/ifm/definterface.cpp   2006-04-05 17:44:52.624215846 -0700
@@ -1893,7 +1893,7 @@
         // generate a name for this panel so that docking panels as tabs doesn't yield a blank tab
         wxString name;
         for( unsigned int i = 0; i < panel->m_children.size(); ++i )
-            name += panel->m_children[i]->m_name + " / ";
+            name += panel->m_children[i]->m_name + wxT("  ");
         panel->m_name = name.SubString(0, name.Length() - 3);

         // update the tab names for our parent
@@ -1981,7 +1981,7 @@
         wxString name;
         for( i = 0; i < panel->m_children.size(); ++i )
         {
-            name += panel->m_children[i]->m_name + " / ";
+            name += panel->m_children[i]->m_name + wxT(" / ");
         }

         panel->m_name = name.SubString(0, name.Length() - 3);
Post Reply