Jump to content

XWindows Dock v5.2.3


BOBAH13

Recommended Posts

  • Replies 2.9k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

I have a bug report. If I minimize the xmail docklet settings into the dock, the dock becomes... useless.

Lol. You shouldn't do this, then. It certainly will give you problems... as xmail is part of XWD, its like minimizing XWD to itself. And the settings are modal, too, that means, you have to close the settings, before you can click anything else on the dock. If you minimize it to the dock, you can't close anymore and you can't click on the dock to show it again... I guess if you do this, the universe might implode...

I will remove the minimize button, if i do another update.

Link to post
Lol. You shouldn't do this, then. It certainly will give you problems... as xmail is part of XWD, its like minimizing XWD to itself. And the settings are modal, too, that means, you have to close the settings, before you can click anything else on the dock. If you minimize it to the dock, you can't close anymore and you can't click on the dock to show it again... I guess if you do this, the universe might implode...

I will remove the minimize button, if i do another update.

Lol, well said :D

Link to post
...I can't figure, is how I can minimize a firefox page and restore it by clicking on the firefox program icon. ( the one I use in the dock to start the program ).

The option I was using in rocketdock was "Open running application instance"

I tried in preference to use : "What to do when clicking" -> Either activate or run and only Run but It don't work...

Thank you

Julien

(sorry for my english)

Anyone ??

Link to post
The only thing I can't figure, is how I can minimize a firefox page and restore it by clicking on the firefox program icon. ( the one I use in the dock to start the program ).

The option I was using in rocketdock was "Open running application instance"

I tried in preference to use : "What to do when clicking" -> Either activate or run and only Run but It don't work.

Julien148's issue is the same as issue#2, I've explained below:

Issue#1:

Steps to Reproduce:

1. Install XWD

2. Enable "Minimize Windows to Dock"

3. Select Genie Effect.

4. Open "My Computer"

5. Minimize "My Computer" window.

6. Open "My Computer" again (Lauch from Start Menu, or other shortcut) while first "My Computer" is still minimized.

7. "My Computer" Window will appear on the screen, however, the problem is, it will not be able to be minimized until you restore the original minimized "My Computer" window in the dock.

Could you please correct this bug. The dock should restore the original "My Computer" window (with Genie Effect,) when you attempt to open "My Computer" the 2nd time.

Issue#2: Related issue (another way to reproduce):

1. Install XWD

2. Enable "Minimize Windows to Dock"

3. Select Genie Effect.

4. Select: "Either Activate or Run"

5. Add MS Paint Shortcut to dock.

6. Click on MS Paint Shortcut on dock, open MS Paint window.

7. Minimize "MS Paint" window to dock.

8. Click on the MS Paint Dock shortcut again.

9. No Response from Dock.

Link to post
Do you mean that that same minimize effect that you use is not the same effect you get when restoring.

Or do you mean it just doesn't work completely.

No, it's not a question of an effect. The minimize and restore effect work great.

I'll explain step by step :

1- Start Firefox from the icon in the dock ( now firefox is running )

2- Now I minimize my firefox page ( genie effect to the dock )

3- Now I want to restore my Firefox page : there is where my problem.

I want to restore my minimized firefox page and clicking the firefox program icon in the dock. ( step 1 )

Sorry for my english

Julien

Link to post

In case anyone would like to write docklets using c++ builder, here is what you need:

XDocklet.h

#ifndef _XDOCKLET_H

#define _XDOCKLET_H



#pragma delphiheader begin

#pragma option push

//#pragma option -w- // All warnings off

#pragma option -Vx // Zero-length empty class member functions

#pragma pack(push,8)



#define STRICT

#include <windows.h>

#include <sysutils.hpp>

#include <forms.hpp>

#include <dialogs.hpp>

#include <algorithm>

using std::min;

using std::max;

#include <gdiplus.h>



namespace Xdockletsrc

{

//-- type declarations -------------------------------------------------------

class DELPHICLASS TXDocklet;

class PASCALIMPLEMENTATION TXDocklet : public System::TObject

{

typedef System::TObject inherited;



public:

bool __stdcall (__closure *SetName)(const AnsiString Name);

AnsiString __stdcall (__closure *GetName)(void);

bool __stdcall (__closure *SetCaption)(int Index, const WideString Value);

WideString __stdcall (__closure *GetCaption)(int Index);

int __stdcall (__closure *GetID)(int Index);

bool __stdcall (__closure *SetCanJump)(bool Value);

bool __stdcall (__closure *GetCanJump)(void);

bool __stdcall (__closure *SetCanDrop)(bool Value);

bool __stdcall (__closure *GetCanDrop)(void);

int __stdcall (__closure *GetXOffset)(void);

int __stdcall (__closure *GetYOffset)(void);

Types::TRect __stdcall (__closure *GetRect)(int Index);

int __stdcall (__closure *GetCount)(void);

bool __stdcall (__closure *SetInt)(int Index, const AnsiString Name, int Value);

bool __stdcall (__closure *SetDWord)(int Index, const AnsiString Name, unsigned Value);

bool __stdcall (__closure *SetDouble)(int Index, const AnsiString Name, double Value);

bool __stdcall (__closure *SetBool)(int Index, const AnsiString Name, bool Value);

bool __stdcall (__closure *SetStr)(int Index, const AnsiString Name, const AnsiString Value);

bool __stdcall (__closure *SetWStr)(int Index, const AnsiString Name, const WideString Value);

int __stdcall (__closure *GetInt)(int Index, const AnsiString Name);

unsigned __stdcall (__closure *GetDWord)(int Index, const AnsiString Name);

double __stdcall (__closure *GetDouble)(int Index, const AnsiString Name);

bool __stdcall (__closure *GetBool)(int Index, const AnsiString Name);

AnsiString __stdcall (__closure *GetStr)(int Index, const AnsiString Name);

WideString __stdcall (__closure *GetWStr)(int Index, const AnsiString Name);

bool __stdcall (__closure *ReDraw)(int Index);

bool __stdcall (*OnAdd)(int Index);

bool __stdcall (*OnDrop)(int Index, int FileIndex, int FilesCount, const AnsiString FileName);

bool __stdcall (*OnExec)(int Index);

bool __stdcall (*OnEdit)(int Index);

bool __stdcall (*OnMouseMove)(int Index, int X, int Y);

bool __stdcall (*OnDelete)(int Index);

bool __stdcall (*OnDraw)(int Index, void * &Icon);

public:

#pragma option push -w-inl

/* TObject.Create */ inline __fastcall TXDocklet(void) : System::TObject() { }

#pragma option pop

#pragma option push -w-inl

/* TObject.Destroy */ inline __fastcall virtual ~TXDocklet(void) { }

#pragma option pop



};





//-- var, const, procedure ---------------------------------------------------

extern "C" __declspec(dllexport) bool __stdcall X_Initialization(void * Value);

extern "C" __declspec(dllexport) bool __stdcall X_Finalization(void);

extern PACKAGE bool __stdcall X_OnAdd(int Index);

extern PACKAGE bool __stdcall X_OnDrop(int Index, int FileIndex, int FilesCount, const AnsiString FileName);

extern PACKAGE bool __stdcall X_OnExec(int Index);

extern PACKAGE bool __stdcall X_OnEdit(int Index);

extern PACKAGE bool __stdcall X_OnMouseMove(int Index, int X, int Y);

extern PACKAGE bool __stdcall X_OnDelete(int Index);

extern PACKAGE bool __stdcall X_OnDraw(int Index, void * &Icon);



} /* namespace Xdockletsrc */



extern "C" __declspec(dllexport) Word __stdcall GetMagicID(void);



using namespace Xdockletsrc;

#pragma pack(pop)

#pragma option pop



#pragma delphiheader end.

//-- end unit ----------------------------------------------------------------



#endif

XDocklet.cpp

//---------------------------------------------------------------------------



#include "XDocklet.h"



#pragma hdrstop



#pragma argsused

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)

{

return 1;

}

//---------------------------------------------------------------------------

extern "C" __declspec(dllexport) WORD __stdcall GetMagicID(void)

{



return 0xFFFF;

};



TXDocklet* XDocklet;



extern "C" __declspec(dllexport) bool __stdcall X_Initialization(void* Value)

{

XDocklet = (TXDocklet*)Value;

XDocklet->SetName("XDockletCpp");



XDocklet->OnAdd = X_OnAdd;

XDocklet->OnDrop = X_OnDrop;

XDocklet->OnExec = X_OnExec;

XDocklet->OnEdit = X_OnEdit;

XDocklet->OnMouseMove = X_OnMouseMove;

XDocklet->OnDelete = X_OnDelete;

XDocklet->OnDraw = X_OnDraw;



return true;

};



extern "C" __declspec(dllexport) bool __stdcall X_Finalization(void)

{

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnAdd(int Index)

{

XDocklet->SetCaption( Index, "XDockletCpp");

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnDrop(int Index,int FileIndex,int FilesCount, const AnsiString FileName)

{

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnExec(int Index)

{

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnEdit(int Index)

{

AnsiString S=InputBox("Edit caption:", "Enter:", XDocklet->GetCaption(Index));

XDocklet->SetCaption(Index, S);

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnMouseMove(int Index,int X,int Y)

{

return true;

};



extern PACKAGE bool __stdcall Xdockletsrc::X_OnDelete(int Index)

{

return true;

};



#define ARGBMake(a,r,g,b) ((a<<24)|r|(g<<8)|(b<<16))



extern PACKAGE bool __stdcall Xdockletsrc::X_OnDraw(int Index, void * &Icon)

{

Gdiplus::GpGraphics* Context;

Gdiplus::GpSolidFill* Brush;

Gdiplus::GpFontFamily* FontFamily;

Gdiplus::GpFont* Font;

Gdiplus::GpRectF R;

TRect wR = XDocklet->GetRect(Index);



Gdiplus::DllExports::GdipCreateBitmapFromScan0(wR.Width(), wR.Height(), wR.Width() * 4, PixelFormat32bppARGB, NULL, &(Gdiplus::GpBitmap*)Icon);

Gdiplus::DllExports::GdipGetImageGraphicsContext((Gdiplus::GpBitmap*)Icon, &Context);

Gdiplus::DllExports::GdipCreateFontFamilyFromName(WideString("Arial"), NULL, &FontFamily);

Gdiplus::DllExports::GdipCreateFont(FontFamily, 8, Gdiplus::FontStyleBold, Gdiplus::UnitPoint, &Font);

Gdiplus::DllExports::GdipCreateSolidFill(ARGBMake(255,0,0,0), &Brush);



Gdiplus::DllExports::GdipFillRectangle(Context, Brush, 0, 0, wR.Right - wR.Left, wR.Bottom - wR.Top);

Gdiplus::DllExports::GdipSetSolidFillColor(Brush, ARGBMake(255,0xFF,0xFF,0xFF));



AnsiString S = "Cpp Docklet";



R.X = 0;

R.Y = 0;

R.Width = wR.Width();

R.Height = wR.Height();

Gdiplus::DllExports::GdipDrawString(Context, WideString(S), S.Length(), Font, &R, NULL, Brush);



Gdiplus::DllExports::GdipDeleteBrush(Brush);

Gdiplus::DllExports::GdipDeleteFont(Font);

Gdiplus::DllExports::GdipDeleteFontFamily(FontFamily);

Gdiplus::DllExports::GdipDeleteGraphics(Context);



return true;

};

gdiplus.lib made from the gdiplus.dll in the docklets folder is attached. Put it in the Lib folder or in the project folder.

Start a new dll project in c++ builder

Rename unit1.cpp to XDocklet.cpp

Paste the XDocklet.cpp code into the XDocklet.cpp file

Add a header file, name it XDocklet.h and paste the XDocklet.h code

Add gdiplus.lib to the project

In Run | Parameters enter the path to XWindowsDock.exe so you can debug your docklet with breakpoints

It is supposed to work with the default project options

I hope that was all...

gdiplus.zip

Link to post
There should be a exsculsion list on this dock. Sometimes I dont want to minimize a game to the dock just the taskbar.

Bobah said that was part of the next release, which I think will be released with the website. (By the way, how's the website going? Last time I checked, Matonga was going to write a php theme renderer.)

Edit: by the way, if I minimize the dock (via a program that sends an external minimize message), the dock will disappear :P Sometimes I want the dock to hide (like rocketdock's ctrl-alt-R) Can we get something like that in the next release?

Link to post
Edit: by the way, if I minimize the dock (via a program that sends an external minimize message), the dock will disappear :P Sometimes I want the dock to hide (like rocketdock's ctrl-alt-R) Can we get something like that in the next release?

There is already a feature like this: auto-hide. But this still got some bugs I don't want to deny. But as long bobah is working at this beatiful app it will grow better ;)

Link to post
There is already a feature like this: auto-hide. But this still got some bugs I don't want to deny. But as long bobah is working at this beatiful app it will grow better ;)

I know, but I'd like to have my dock open for most of the time, and be able to turn it off for fullscreen apps of mine. Rocketdock also had autohide, but it had that ctrl-alt-r thing that made things easier to work with

Link to post

(please read the whole message, it's important for the dock's development, THANKS)

Your dock is actually THE BEST. I used to use RocketDock, but when I found your program, I uninstalled RocketDock inmmediatelly.

Finally, somebody made a dock exactly like Leopard's Dock: YOU.

Stacks are amazing and mirror effect is great.

That's why I'm proud of your effort in this program development. THANK YOU.

But there are some features that would make this dock even more better (I asure you):

STACKS:

1.The little icons which represent the stack's content should be optional, because I want to use an specific icon for my stack but these "representative icons" make my "specific icon" look very bad. So I would like these "representative icons" to be optional, you could put this option in the right click's EDIT option.

2.Stacks would be more comfortable if they DON'T move after you make click on it. Because, when I want to select the first object in a fan stack, I can't put the mouse over the icon that i want to use. I think this is very necessary because stacks are bothering when they "follow the dock's movement". Of course you should make yhis as an option, because some people like moving stacks, some others don't like it, you know.

MIRROR EFFECT:

It would be nicer if you make an option which lets the mirror have a gradient from the edge of the screen. I mean, the mirror would smoothly desappear from an specific percentage of the mirror image. I asure you that an option like this, would make the dock much more beautiful.

ICONS:

It would be nice to have some effects available when clicking an icon. If you want to know specifically what I'm talking about, you should try "UberIcon". It's a free software which gives some effects when doule-clicking an icon in Windows. Please try downloading it (search in google). Don't worry about virus, the developers has never uploaded malaware since they created "UberIcon".

MINIMIZE EFFECT

The ones you included are great, and they work very fast, but you still sould improve it's performance for Xp.

The last suggestion (very important): magnification should be smoother, so if you please work on it, it would be great.

I really hope you make all this. I know it's a big work, but I asure you that everybody in the world will use XWindows Dock if you include these options to the program.

THANKS TO READ EVERITHING. Please contact me and give me your answer for this message to these e-mails:

[email protected]

[email protected]

THANK YOU. I KNOW YOU CAN DO IT... I promise to make everybody in the world to know about your dock, you must be sure that they'll use it.

Link to post
(please read the whole message, it's important for the dock's development, THANKS)

[snip]

OK, here's the rundown

STACKS

1. I agree

2. I guess some people would mind

MIRROR EFFECT

I disagree, they look fine as it is.

ICONS

There already is a bounce effect.

MINIMIZE EFFECT

Sure, but it'll probably be a pain to make it any faster than it is.

@atreiu: better?

Link to post
OK, here's the rundown

[...]

Pfff.... why quoting his whole post? Isn't this thread long enough, already? ;)

My opinion:

I totally agree on his ideas on STACKS, MIRROR EFFECT, MINIMIZE EFFECT and magnification. I think this would be a major improvement to an already great dock.

On ICONS: additional effect would be nice, but I would consider these as minor important.

Link to post

I have downloaded latest version and I want to say bravo. The dock is near to be the best windows dock ever. There are just few things i am missing:

1. see all running apps with possibility exclude them (for example if I dont have notepad in dock and open it, i want to see it in dock. When I close it, it dissapears from dock)

2. Possibility change both icon of recycle bin, empty and full

3. Change stack icon and dont see other icons in stack, just the chosen one

Still using Rklauncher, but if you'll be succesful and add this things to dock, i am going to convert ;)

Great work man

Link to post

Hi,

Sorry for my bad English.

First of all thank you for this great dock: the best.

I have two questions (sorry if the questions posed was already on).

1 / Under Vista, unable to open the Control Panel.

2 / It is not possible when you right click on the dustbin of clean with CCleaner

Thank you for your help and good festive period.

geodemars

Link to post
i have recently downloaded the latest version of of xwindows dock, however, if i add stack from folder re: program files not all of my program files folders shows up.....any solution?

please help!!

Set "Maximum items in grid" to something really high, and grid icon size to something really low.

Link to post
Guest
This topic is now closed to further replies.

×
×
  • Create New...