Print Page | Close Window

Architecture modifications for advanced users

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Visual C++ MFC
Forum Description: Topics related to Codejock Visual C++ MFC products
URL: http://forum.codejock.com/forum_posts.asp?TID=13834
Printed Date: 29 April 2024 at 11:44am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Architecture modifications for advanced users
Posted By: mdoubson
Subject: Architecture modifications for advanced users
Date Posted: 27 March 2009 at 9:20pm
Hi guys, please give me know before we will oficially release version 13.1 about your needs in some architecture changes like:
 
1. Make some non-virtual function to declare as virtual
 
2. Make some private members or functions public
 
I will analyze your requests (for Calendar, Report and SyntaxEdit components) and will try to make you happy in your advanced development
 
 Please put your proposal as respond on this post - it make easy to collect it all
 
 


-------------
Mark Doubson, Ph.D.



Replies:
Posted By: znakeeye
Date Posted: 30 March 2009 at 6:53am

Brilliant move

Perhaps you should update the icons for CXTEditListBox. There are 24bit-icons nowadays...

-------------
PokerMemento - http://www.pokermemento.com/


Posted By: znakeeye
Date Posted: 31 March 2009 at 6:21pm
void CXTPDockingPaneLayout::Serialize(CArchive& ar)
{
    CXTPPropExchangeArchive px(ar);
    DoPropExchange(&px); // BOOL gone...
}
 
All calls to DoDropExchange should return the returned BOOL! I believe this needs to be changed for several CXTPDocking* classes.


-------------
PokerMemento - http://www.pokermemento.com/


Posted By: kanitamildasan
Date Posted: 01 April 2009 at 12:54am
Hi,

int CXTPResourceManager::GetMenuLocaleString(CMenu* pMenu, UINT nIDItem, CString& rString, UINT nFlags)

Making this method to virtual will help us to load menu strings dynamically at runtime without difficulty.

Thanks



Posted By: znakeeye
Date Posted: 01 April 2009 at 6:39am
CXTPRibbonBar should have a method/variable that disables the right-click menu. Today I have to derive this class and override WM_RBUTTONUP... An extra class for such a simple thing :(


-------------
PokerMemento - http://www.pokermemento.com/


Posted By: inmaurik
Date Posted: 14 April 2009 at 3:24am
It should be possible to, in a convenient way, set the report's paint manager to always draw the selected row as if it had focus. Similar to the LVS_SHOWSELALWAYS style of CListCtrl!

I have been looking in a way to implement it myself but then I have to overwrite all of the following functions because they call CXTPReportControl::HasFocus.

CXTPReportPaintManager::FillGroupRowMetrics
CXTPReportPaintManager::DrawGroupRow
CXTPReportPaintManager::DrawLink2
CXTPReportRow::Draw
CXTPReportRow::GetItemMetrics
CXTPReportRow::DrawFixed

Because my derived class of the PaintManager is not a friend of CXTPReportRow you get into problems because of access to protected members.

Maybe it is possible to extend IsRowFocusVisible and have the focused logic in this function. This function can then return TRUE when the control has the focus and the row focus should be shown. If every function mentioned above would use this function (instead of HasFocus) there is just one place to overwrite to show the focus always. Unfortunately this function is also not virtual.


-------------
Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)


Posted By: inmaurik
Date Posted: 14 April 2009 at 5:22am
I'm using the Report control to show information from the database. The control is filled with an initial set of data and when the user scrolls down the next data is added to the control. This however prompts me with a problem. To add the rows to the control I have to call populate.

When I do this the current selection gots lost because Populate wants to set the selection back to the selected record instead of the selected row (e.g. a group row) or when there is no selection the top row is set.

It would be great if Populate would set back the focus to the selected row (without ensuring visibility) or just leave the control without selection (as before calling Populate).

-------------
Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)


Posted By: znakeeye
Date Posted: 14 April 2009 at 11:36am
What's this? The function is non-virtual and makes a lot of your code unused...
 
BOOL CXTPPropertySheet::IsWizard() const
{
// Not implemented
return FALSE; //m_psh.dwFlags & (PSH_WIZARD | PSH_WIZARD97);

}



-------------
PokerMemento - http://www.pokermemento.com/


Posted By: znakeeye
Date Posted: 15 April 2009 at 6:56am
Time for release any time soon? It's been a while since 27 March

-------------
PokerMemento - http://www.pokermemento.com/


Posted By: inmaurik
Date Posted: 15 April 2009 at 4:03pm
The 13.0.0 release was on February 9th, 2009, wasn't it? What was on march 27th?

-------------
Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)


Posted By: znakeeye
Date Posted: 17 April 2009 at 3:13am
Topic: Architecture modifications for advanced users
    Posted: 27 March 2009 at 9:20pm

-------------
PokerMemento - http://www.pokermemento.com/


Posted By: mnowaczy
Date Posted: 20 April 2009 at 9:16am
To take control over multipage printing of xaml documents I made 2 members public:

1.
class _XTP_EXT_CLASS CXTPMarkupVisual
CPoint m_ptVisualOffset;        // The offset value of the visual object.

2.
class _XTP_EXT_CLASS CXTPMarkupUIElement
CSize m_szDesiredSize;  // Gets the size that this element computed during the measure pass of the layout process

It would be nice you make them public or add multi page printing support.
I was asking about it here:
https://forum.codejock.com/forum_posts.asp?TID=11636&KW=


Posted By: zitz
Date Posted: 27 May 2009 at 4:44am
For report: http://forum.codejock.com/forum_posts.asp?TID=14321
and for calendar: http://forum.codejock.com/forum_posts.asp?TID=13443


Posted By: zitz
Date Posted: 28 May 2009 at 8:23am
Please add patch for CXTSplitterWnd::OnMouseMove
https://forum.codejock.com/forum_posts.asp?TID=11300


Posted By: zitz
Date Posted: 29 May 2009 at 2:49am
Please add SetCustomTransparentColor( COLORREF clr ) to CXTPTransparentBitmap
Please add CXTPKeyboardMonitor class


Posted By: inmaurik
Date Posted: 29 May 2009 at 4:23am
Also the ability to check/uncheck all rows of the selection in the CXTPReportControl
https://forum.codejock.com/forum_posts.asp?TID=14410

-------------
Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)


Posted By: xxLuda
Date Posted: 11 June 2009 at 3:50am
Could be possible to add [virtual] to these functions ?

PropertyGrid\XTPPropertyGridItem.h
LN608: [add:[virtual]] CString GetValue() const;

PropertyGrid\XTPPropertyGridInplaceButton.h
LN69: [add:[virtual]] int GetWidth();
LN89: [add:[virtual]] CString SetCaption() const;


Posted By: znakeeye
Date Posted: 16 June 2009 at 5:42am
Please change these functions!
 
void AddComboButton(BOOL bInside = FALSE);
void AddExpandButton(BOOL bInside = FALSE);
void AddSpinButton(BOOL bInside = FALSE);

Should be:
CXTPReportInplaceButton* AddComboButton(BOOL bInside = FALSE);
CXTPReportInplaceButton* AddExpandButton(BOOL bInside = FALSE);
CXTPReportInplaceButton* AddSpinButton(BOOL bInside = FALSE);

It's brain-damaged not to return the added pointer-value! :(

-------------
PokerMemento - http://www.pokermemento.com/


Posted By: mdoubson
Date Posted: 16 June 2009 at 7:25am
Agree. Done

-------------
Mark Doubson, Ph.D.


Posted By: robin_l
Date Posted: 22 June 2009 at 3:14pm

It is too late for 13.1 but I'd like to see CXTResizePropertySheet get the same automatic placement handling that CXTPPropertySheet does, which means adding the following to OnInitDialog

if (!m_strSection.IsEmpty())

{

LoadPlacement(m_strSection);

}

Also, can you please either make m_strSection (in CXTResize) public rather than protected, or add a public function that allows it to be set. AutoLoadPlacement() doesn't really do this job as it tries to set the window position immediately, which bombs if the window has not yet been created.
 
What I would like to do is the following:

CXTResizePropertySheet sheet;
// add pages here
sheet.m_strSection = _T("Foo");
sheet.DoModal();
Currently, to do this I have to subclass CXTResizePropertysheet and this seems unnecessary.
 
Thanks!
 
Robin
 
 


-------------
Product: Xtreme ToolkitPro 2009 (13.4.1)
Platform: Windows 7 Ultimate(64bit)
Language: Visual Studio 2010 (C++)


Posted By: zitz
Date Posted: 24 June 2009 at 6:22am
CXTPImageManager.AddIcons
Change
void AddIcons(CXTPImageManager* pImageManager);

to
void AddIcons(CXTPImageManager* pImageManager, UINT* pCommands=NULL, int nCount=0);


i want copy command range, not all.


-------------
Xtreme ToolkitPro v13.1.0, static, VC++6


Posted By: zitz
Date Posted: 25 June 2009 at 2:39am
I want track changes of CXTPCommandBarsOptions::bDirtyState

void CXTPCommandBars::ToggleVisible(int nIndex)
{
    ASSERT(nIndex >= 0 && nIndex < GetCount());

    CXTPToolBar* pBar = GetAt(nIndex);
    if (pBar)
    {
        pBar->SetVisible(!pBar->IsVisible()); << bDirtyState changes here already
    }

    m_pOptions->bDirtyState = TRUE; << unnecessary and IMHO wrong
}

I overload CXTPToolBar::SetVisible and CXTPToolBar::OnLButtonDown and CXTPToolBar::OnNcLButtonDown function to track CXTPCommandBarsOptions::bDirtyState, but i can't change CXTPCommandBars::ToggleVisible :(
After tracking i change CXTPCommandBarsOptions::bDirtyState to FALSE, but at CXTPCommandBars::ToggleVisible it changes to TRUE back :(
1. Add virtual to CXTPCommandBars::ToggleVisible
2. Add virtual CXTPCommandBarsOptions::SetDirtyState
I want track bDirtyState to save CommandBars at the time of change (i Serialize them)

-------------
Xtreme ToolkitPro v13.1.0, static, VC++6


Posted By: zitz
Date Posted: 25 June 2009 at 2:45am
Please add
virtual BOOL CXTPControl::OnMButtonDown(CPoint point);
virtual BOOL CXTPControl::OnMButtonUp(CPoint point);



-------------
Xtreme ToolkitPro v13.1.0, static, VC++6


Posted By: zitz
Date Posted: 25 June 2009 at 2:59am
Please add
void CXTPCommandBars::SetCustomToolBarClass(CRuntimeClass* pToolBarClass);
not static, only for this CXTPCommandBars

-------------
Xtreme ToolkitPro v13.1.0, static, VC++6


Posted By: znakeeye
Date Posted: 29 June 2009 at 7:13am
void CXTPZipMemFile::AttachCompressedBuffer
void CXTPZipMemFile::DetachCompressedBuffer
 
Both these should return a BOOL! Especially the first one.


-------------
PokerMemento - http://www.pokermemento.com/


Posted By: znakeeye
Date Posted: 04 August 2009 at 4:43pm

Perhaps CXTPToolTipContext should have a Clone()-function, so that you can easily copy tooltip-styles between controls?



-------------
PokerMemento - http://www.pokermemento.com/


Posted By: Barto
Date Posted: 05 August 2009 at 7:07am
Please add GetDefaultValue() to CXTPPropertyGridItem (counterpart to SetDefaultValue())


Posted By: znakeeye
Date Posted: 05 August 2009 at 8:35am
What's the point of deriving CXTPPropertyGridItemConstraint when you cannot use the class?
 
CXTPPropertyGridItemConstraint* CXTPPropertyGridItemConstraints::AddConstraint(LPCTSTR str, DWORD_PTR dwData, int nImage)
{
    CXTPPropertyGridItemConstraint* pConstaint = new CXTPPropertyGridItemConstraint();
    ...
 
 
You should have another "AddConstraint" that accepts a CXTPPropertyGridItemConstraint pointer!


-------------
PokerMemento - http://www.pokermemento.com/


Posted By: crystyce
Date Posted: 03 November 2009 at 4:55am
void CreateMultiRowIndexer(CXTPTabManager* pTabManager, CDC* pDC, int nWidth);
in XTPTabPaintManager should be virtual

CXTPMarkupUIElement* m_pMarkupUIElement; in CXTPReportGroupRow should have a GetMarkupUIElement() function;



-------------
     Product: Xtreme SuitePro (MFC) version 13.1.0
     Platform: Windows XP (32bit) - SP 2
     Language: Visual C++ 2008


Posted By: adrien
Date Posted: 09 December 2009 at 2:12am
I have a new one. When you close a message bar from the SC_CLOSE button, it should post a message to its parent, so we can tell if it's closed. E.g. something like

void CXTPMessageBar::Click(CXTPMessageBarButton* pButton)
{
     if (pButton->m_nID == SC_CLOSE)
     {
          SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_HIDEWINDOW);

               ::PostMessage(m_pParent->m_hWnd, WM_XTP_MESSAGEBARCLOSED, 0, 0);
          m_pCommandBars->RecalcFrameLayout();
     }
     else
     {
          m_pCommandBars->GetSite()->SendMessage(WM_COMMAND, pButton->m_nID);
     }
}


-------------
http://www.wingate.com - http://www.wingate.com



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net