Custom Taskbar Prob.

03/03/2018 02:47 yazuka21#1
Does anyone know how this black on my taskbar happen ? (RIP ENGLISH)

But here.

[Only registered and activated users can see links. Click Here To Register...]

How could I remove that black thing on my taskbar, Help ! Photoshop (PS) Pro ! :D

THANKS !
03/03/2018 09:56 jericho2nd#2
Quote:
Originally Posted by yazuka21 View Post
Does anyone know how this black on my taskbar happen ? (RIP ENGLISH)

But here.

[Only registered and activated users can see links. Click Here To Register...]

How could I remove that black thing on my taskbar, Help ! Photoshop (PS) Pro ! :D

THANKS !
magic wand i guess? :D then save save it .tga?
03/03/2018 17:41 Dr. Peacock#3
Make it Invisible? Like the transparent types 80~100%
03/04/2018 03:58 yazuka21#4
None of those. I already add the Alpha Channel, more better than those suggestion. I think I need to fix this on my source.
03/04/2018 18:44 Spheromany#5
If you use the old v15 interface then it isnt possible do make it transparent since the map isnt rendered below the taskbar unlike the v19 interface.
Even u use the v19 interface or rewrite the v15 one so it renders the map below the taskbar.
03/04/2018 21:06 MrDemian#6
Gosh, "make the bar transparent" none of you are right.
Wndmanager.inc

-> CWndMgr::OpenField()
Load the World before load up the Taskbar.
03/04/2018 22:23 Avalion#7
Quote:
Originally Posted by MrDemian View Post
Gosh, "make the bar transparent" none of you are right.
Wndmanager.inc

-> CWndMgr::OpenField()
Load the World before load up the Taskbar.
:thinking:

CWndTaskbar::OnInitialUpdate
03/05/2018 17:26 Burdenz2007#8
Quote:
Originally Posted by MrDemian View Post
Gosh, "make the bar transparent" none of you are right.
Wndmanager.inc

-> CWndMgr::OpenField()
Load the World before load up the Taskbar.
This is so lul. Why would you load the World Field when the problem is the taskbar. This why flyff is dying. Lul. I laughed.:facepalm::lul:
03/05/2018 19:38 MrDemian#9
He asked "how to remove the black blanks".
You can make it transparent, but the main reason why the blackbars coming up is because in v15 the World App is just renderd to the topheight of the taskbar.

Flyff is dead, btw.
Some proof:
Load Taskbar before World:
[Only registered and activated users can see links. Click Here To Register...]
Load World before Taskbar:
[Only registered and activated users can see links. Click Here To Register...]
03/06/2018 02:51 Avalion#10
Nerf some code in OnInitialUpdate. Nerf some code in Initialize. Add TOPMOST to window style.

Sent from my LG-H812 using Tapatalk
03/06/2018 03:14 yazuka21#11
Quote:
Originally Posted by MrDemian View Post
Gosh, "make the bar transparent" none of you are right.
Wndmanager.inc

-> CWndMgr::OpenField()
Load the World before load up the Taskbar.
Can you tell me what exact I'm going to do ? 'cuz I'm not sure if I move the right code. :D

Quote:
Originally Posted by Avalion View Post
Nerf some code in OnInitialUpdate. Nerf some code in Initialize. Add TOPMOST to window style.

Sent from my LG-H812 using Tapatalk
Avie, Like this ?

Code:
bResult = CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(), APP_TASKBAR1920W, WBS_TOPMOST | WBS_MANAGER | WBS_SOUND, CPoint(0, 0), pWndParent);
.

And did you mean Nerf like this ?

CWndTaskbar::OnInitialUpdate
Code:
 	POINT_QUEUE_X  = pSkill->rect.left;
 	POINT_QUEUE_Y  = pSkill->rect.top;
 
 	g_WndMng.m_pWndTaskBar = this;
 
/*	{
		rect = g_Neuz.GetDeviceRect();
		m_pWndRoot->m_rectLayout = rect;
		switch( m_nPosition )
		{
		case TASKBAR_TOP:
			rect.bottom = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.top = rect.bottom;
			break;
		case TASKBAR_BOTTOM:
			rect.top = rect.bottom - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.bottom = rect.top;
			break;
		case TASKBAR_LEFT:
			rect.right = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.left = rect.right;
			break;
		case TASKBAR_RIGHT:
			rect.left = rect.right - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.right = rect.left;
			break;
		}
		SetWndRect( rect );
	}*/
	const int nWidth = m_rectWindow.Width();
	const int nHeight = m_rectWindow.Height();
	const int x = m_pWndRoot->m_rectWindow.left + (m_pWndRoot->m_rectWindow.Width() / 2) - (nWidth / 2);

	SetWndRect(CRect(x, m_pWndRoot->m_rectWindow.bottom - nHeight, x + nWidth, m_pWndRoot->m_rectWindow.bottom));
	AdjustWndBase();
Thanks.




EDIT : !@!@!@!@

When I try to add TOPMOST;
[Only registered and activated users can see links. Click Here To Register...]



When I try this;
Code:
 	POINT_QUEUE_X  = pSkill->rect.left;
 	POINT_QUEUE_Y  = pSkill->rect.top;
 
 	g_WndMng.m_pWndTaskBar = this;
 
/*	{
		rect = g_Neuz.GetDeviceRect();
		m_pWndRoot->m_rectLayout = rect;
		switch( m_nPosition )
		{
		case TASKBAR_TOP:
			rect.bottom = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.top = rect.bottom;
			break;
		case TASKBAR_BOTTOM:
			rect.top = rect.bottom - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.bottom = rect.top;
			break;
		case TASKBAR_LEFT:
			rect.right = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.left = rect.right;
			break;
		case TASKBAR_RIGHT:
			rect.left = rect.right - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.right = rect.left;
			break;
		}
		SetWndRect( rect );
	}*/
	const int nWidth = m_rectWindow.Width();
	const int nHeight = m_rectWindow.Height();
	const int x = m_pWndRoot->m_rectWindow.left + (m_pWndRoot->m_rectWindow.Width() / 2) - (nWidth / 2);

	SetWndRect(CRect(x, m_pWndRoot->m_rectWindow.bottom - nHeight, x + nWidth, m_pWndRoot->m_rectWindow.bottom));
	AdjustWndBase();
Result :
[Only registered and activated users can see links. Click Here To Register...]

HAHAHAHAHA
03/06/2018 04:27 Avalion#12
Quote:
Originally Posted by yazuka21 View Post
Can you tell me what exact I'm going to do ? 'cuz I'm not sure if I move the right code. :D

Avie, Like this ?

Code:
bResult = CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(), APP_TASKBAR1920W, WBS_TOPMOST | WBS_MANAGER | WBS_SOUND, CPoint(0, 0), pWndParent);
.

And did you mean Nerf like this ?

CWndTaskbar::OnInitialUpdate
Code:
 	POINT_QUEUE_X  = pSkill->rect.left;
 	POINT_QUEUE_Y  = pSkill->rect.top;
 
 	g_WndMng.m_pWndTaskBar = this;
 
/*	{
		rect = g_Neuz.GetDeviceRect();
		m_pWndRoot->m_rectLayout = rect;
		switch( m_nPosition )
		{
		case TASKBAR_TOP:
			rect.bottom = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.top = rect.bottom;
			break;
		case TASKBAR_BOTTOM:
			rect.top = rect.bottom - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.bottom = rect.top;
			break;
		case TASKBAR_LEFT:
			rect.right = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.left = rect.right;
			break;
		case TASKBAR_RIGHT:
			rect.left = rect.right - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.right = rect.left;
			break;
		}
		SetWndRect( rect );
	}*/
	const int nWidth = m_rectWindow.Width();
	const int nHeight = m_rectWindow.Height();
	const int x = m_pWndRoot->m_rectWindow.left + (m_pWndRoot->m_rectWindow.Width() / 2) - (nWidth / 2);

	SetWndRect(CRect(x, m_pWndRoot->m_rectWindow.bottom - nHeight, x + nWidth, m_pWndRoot->m_rectWindow.bottom));
	AdjustWndBase();
Thanks.




HAHAHAHAHA
Nice laugh. Maybe you should learn something basic with Bitwise Operators in C


First, you remove the change to the root rect to stop it changing the world. Next, you render taskbar in front of everything.

CWndTaskbar::OnInitialUpdate
Code:
/*	{
		rect = g_Neuz.GetDeviceRect();
		m_pWndRoot->m_rectLayout = rect;
		switch( m_nPosition )
		{
		case TASKBAR_TOP:
			rect.bottom = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.top = rect.bottom;
			break;
		case TASKBAR_BOTTOM:
			rect.top = rect.bottom - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.bottom = rect.top;
			break;
		case TASKBAR_LEFT:
			rect.right = TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.left = rect.right;
			break;
		case TASKBAR_RIGHT:
			rect.left = rect.right - TASKBAR_HEIGHT;
			m_pWndRoot->m_rectLayout.right = rect.left;
			break;
		}
		SetWndRect( rect );
	}*/
Next, you want to always have the taskbar centered... right?

(CWndTaskbar::OnInitialUpdate)
Code:
	int nWidth = m_rectWindow.Width();
	int nHeight = m_rectWindow.Height();
	int x = m_pWndRoot->m_rectWindow.left + (m_pWndRoot->m_rectWindow.Width() / 2) - (nWidth / 2);

	SetWndRect(CRect(x, m_pWndRoot->m_rectWindow.bottom - nHeight, x + nWidth, m_pWndRoot->m_rectWindow.bottom));
	AdjustWndBase();

Then, you want to support multiple resolution possibilities by switching == if checking to >= and <, etc.

CWndTaskbar::Initialize
Code:
	if( g_Option.m_nResWidth >= 800 && g_Option.m_nResWidth < 1024)
And finally, you want to push it to the front, as taskbar should always be a front faced UI, for the most part.
Code:
		bResult = CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_TASKBAR800, WBS_MANAGER | WBS_SOUND | WBS_NOFOCUS | WBS_TOPMOST, CPoint( 0, 0 ), pWndParent );

Edit:
But, yes, if you want the window to not be "topmost", you can open it after the world opening by moving:

Code:
OpenTaskBar();
below
Code:
	ObjectExecutor( SHORTCUT_APPLET, APP_WORLD );
But then, the center code should still be done, and there would be no real reason to still keep the part uncommented in CWndTaskbar::OnInitialUpdate. Depends how you want your UI to be.