This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

BIN
splitter/Debug/NewsTree.obj Normal file

Binary file not shown.

BIN
splitter/Debug/RCa01004 Normal file

Binary file not shown.

Binary file not shown.

BIN
splitter/Debug/main.obj Normal file

Binary file not shown.

BIN
splitter/Debug/mainfrm.obj Normal file

Binary file not shown.

BIN
splitter/Debug/splitter.exe Normal file

Binary file not shown.

BIN
splitter/Debug/splitter.exp Normal file

Binary file not shown.

BIN
splitter/Debug/splitter.lib Normal file

Binary file not shown.

BIN
splitter/Debug/splitter.res Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
splitter/Debug/vc60.idb Normal file

Binary file not shown.

BIN
splitter/Debug/vc60.pdb Normal file

Binary file not shown.

26779
splitter/NEWSSRC Normal file

File diff suppressed because it is too large Load Diff

95
splitter/NewsTree.cpp Normal file
View File

@@ -0,0 +1,95 @@
#include <splitter/NewsTree.hpp>
#include <common/file.hpp>
#include <common/qsort.hpp>
NewsTree::NewsTree(GUIWindow &parentWindow,const Rect &winRect,int controlID)
: FolderTree(parentWindow,winRect,controlID)
{
mSelChangedHandler.setCallback(this,&NewsTree::selChangedHandler);
mSelChangingHandler.setCallback(this,&NewsTree::selChangingHandler);
mItemExpandingHandler.setCallback(this,&NewsTree::itemExpandingHandler);
mItemExpandedHandler.setCallback(this,&NewsTree::itemExpandedHandler);
mBeginDragHandler.setCallback(this,&NewsTree::beginDragHandler);
insertHandler(FolderTree::SelChangedHandler,&mSelChangedHandler);
insertHandler(FolderTree::SelChangingHandler,&mSelChangingHandler);
insertHandler(FolderTree::ItemExpandingHandler,&mItemExpandingHandler);
insertHandler(FolderTree::ItemExpandedHandler,&mItemExpandedHandler);
insertHandler(FolderTree::BeginDragHandler,&mBeginDragHandler);
addItems();
}
NewsTree::~NewsTree()
{
}
CallbackData::ReturnType NewsTree::selChangedHandler(CallbackData &cbData)
{
String currentSelection;
::OutputDebugString("MainFrame::selChangedHandler\n");
currentSelection=this->currentSelection();
ItemType itemType=getItemType(cbData.lParam());
if(GroupNode==itemType)::OutputDebugString("GroupNode");
else if(RootNode==itemType)::OutputDebugString("RootNode");
else if(NewsNode==itemType)::OutputDebugString("NewsNode");
return false;
}
CallbackData::ReturnType NewsTree::selChangingHandler(CallbackData &cbData)
{
::OutputDebugString("MainFrame::selChangingHandler\n");
return false;
}
CallbackData::ReturnType NewsTree::itemExpandingHandler(CallbackData &cbData)
{
::OutputDebugString("MainFrame::itemExpandingHandler\n");
return false;
}
CallbackData::ReturnType NewsTree::itemExpandedHandler(CallbackData &cbData)
{
::OutputDebugString("MainFrame::itemExpandedHandler\n");
return false;
}
CallbackData::ReturnType NewsTree::beginDragHandler(CallbackData &cbData)
{
::OutputDebugString("MainFrame::beginDragHandler\n");
return false;
}
// ********************************************************************************
void NewsTree::addItems()
{
Block<String> groupNames;
TreeView::NodeType nodeType;
String rootNodeName("news.optonline.net");
addRootNode(0,rootNodeName,makeItemID(RootNode,0));
loadGroups(groupNames);
for(int index=0;index<groupNames.size();index++)
{
if(!index)nodeType=TreeView::NodeChild;
else nodeType=TreeView::NodeSibling;
String item(groupNames[index]);
TreeViewItem insertItem(0,0,0,0,(char*)item.str(),item.length(),FolderTree::FolderClosed,FolderTree::FolderOpen,0,makeItemID(GroupNode,index+1));
addNode(nodeType,insertItem,rootNodeName);
}
}
void NewsTree::loadGroups(Block<String> &strLines)
{
QuickSort<String> stringSorter;
File inFile("newssrc","rb");
String strLine;
int max=4;
int count=0;
if(!inFile.isOkay())return;
strLines.remove();
while(inFile.readLine(strLine)&&count++<max)strLines.insert(&strLine);
stringSorter.sortItems(strLines);
}

50
splitter/NewsTree.hpp Normal file
View File

@@ -0,0 +1,50 @@
#ifndef _SPLITTER_NEWSTREE_HPP_
#define _SPLITTER_NEWSTREE_HPP_
#ifndef _IMAGELIST_FOLDERTREE_HPP_
#include <imagelst/ftree.hpp>
#endif
class NewsTree : public FolderTree
{
public:
NewsTree(GUIWindow &parentWindow,const Rect &winRect,int controlID);
virtual ~NewsTree();
private:
enum ItemType{GroupNode=1,RootNode,NewsNode};
CallbackData::ReturnType selChangedHandler(CallbackData &cbData);
CallbackData::ReturnType selChangingHandler(CallbackData &cbData);
CallbackData::ReturnType itemExpandingHandler(CallbackData &cbData);
CallbackData::ReturnType itemExpandedHandler(CallbackData &cbData);
CallbackData::ReturnType beginDragHandler(CallbackData &cbData);
DWORD makeItemID(int id,int index);
ItemType getItemType(DWORD itemID);
DWORD getIndex(DWORD itemID);
void addItems();
void loadGroups(Block<String> &strLines);
Callback<NewsTree> mSelChangedHandler;
Callback<NewsTree> mSelChangingHandler;
Callback<NewsTree> mItemExpandingHandler;
Callback<NewsTree> mItemExpandedHandler;
Callback<NewsTree> mBeginDragHandler;
};
inline
DWORD NewsTree::makeItemID(int id,int index)
{
return (id<<16)|index;
}
inline
NewsTree::ItemType NewsTree::getItemType(DWORD itemID)
{
return ItemType(itemID>>16);
}
inline
DWORD NewsTree::getIndex(DWORD itemID)
{
return (itemID&0xFFFF);
}
#endif

27
splitter/RESOURCE.H Normal file
View File

@@ -0,0 +1,27 @@
#ifndef _SPLITTER_RESOURCE_H_
#define _SPLITTER_RESOURCE_H_
// string table defines
#define STRING_SPLITTER 1000
#define STRING_VERSION 1001
#define STRING_MAINVIEWCLASSNAME 1002
// news group add/modify dialog
// nntp menu items
#define SPLITTER_FILE_OPEN 40000
#define SPLITTER_FILE_BROWSE 40001
#define SPLITTER_FILE_EXIT 40002
#define SPLITTER_HELP_CONTENTS 40003
#define SPLITTER_HELP_SEARCH 40004
#define SPLITTER_REGISTRATION 40005
#define SPLITTER_HELP_ABOUT 40006
#define IDM_CASCADE 10014
#define IDM_TILE 10015
#define IDM_ARRANGE 10016
#define IDM_CLOSEALL 10017
#define IDM_MINIMIZEALL 10018
#define IDM_RESTOREALL 10019
#endif

BIN
splitter/STRIP.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

184
splitter/SplitterWnd.cpp Normal file
View File

@@ -0,0 +1,184 @@
#include <splitter/SplitterWnd.hpp>
#include <common/purehdc.hpp>
char SplitterWnd::smszClassName[]="SplitterWnd";
SplitterWnd::SplitterWnd(GUIWindow &parent,GUIWindow &pane1,GUIWindow &pane2,int splitRatio)
: mBkGndBrush(RGBColor(COLORREF(::GetSysColor(COLOR_3DFACE)))),
mParent(&parent), mPane1(&pane1), mPane2(&pane2), mSplitRatio(splitRatio),
mSplitWidth(SplitWidth), mLightPen(RGBColor((COLORREF)::GetSysColor(COLOR_3DLIGHT))),
mHiLightPen(RGBColor((COLORREF)::GetSysColor(COLOR_3DHILIGHT))),
mShadowPen(RGBColor((COLORREF)::GetSysColor(COLOR_3DSHADOW))),
mDkShadowPen(RGBColor((COLORREF)::GetSysColor(COLOR_3DDKSHADOW)))
{
mCreateHandler.setCallback(this,&SplitterWnd::createHandler);
mPaintHandler.setCallback(this,&SplitterWnd::paintHandler);
mLeftButtonDownHandler.setCallback(this,&SplitterWnd::leftButtonDownHandler);
mLeftButtonUpHandler.setCallback(this,&SplitterWnd::leftButtonUpHandler);
mMouseMoveHandler.setCallback(this,&SplitterWnd::mouseMoveHandler);
mCaptureChangedHandler.setCallback(this,&SplitterWnd::captureChangedHandler);
mDestroyHandler.setCallback(this,&SplitterWnd::destroyHandler);
mSizeHandler.setCallback(this,&SplitterWnd::parentSizeHandler);
registerClass();
insertHandlers();
Rect winRect(CW_USEDEFAULT,CW_USEDEFAULT,SplitWidth,mParent->height());
createWindow(smszClassName,"Splitter",WS_VISIBLE|WS_CHILD,winRect,parent,(HMENU)ControlID,processInstance(),this);
show(SW_SHOW);
update();
}
SplitterWnd::~SplitterWnd()
{
removeHandlers();
}
void SplitterWnd::registerClass()
{
WNDCLASS wndClass;
HINSTANCE hInstance;
hInstance=processInstance();
if(::GetClassInfo(hInstance,smszClassName,(WNDCLASS FAR *)&wndClass))return;
wndClass.style =CS_HREDRAW|CS_VREDRAW;
wndClass.lpfnWndProc =(WNDPROC)GUIWindow::WndProc;
wndClass.cbClsExtra =0;
wndClass.cbWndExtra =sizeof(SplitterWnd*);
wndClass.hInstance =hInstance;
wndClass.hIcon =0;
wndClass.hCursor =::LoadCursor(NULL,IDC_SIZEWE);
wndClass.hbrBackground =mBkGndBrush.getBrush();
wndClass.lpszMenuName =0;
wndClass.lpszClassName =smszClassName;
::RegisterClass(&wndClass);
}
void SplitterWnd::insertHandlers()
{
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
insertHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler);
insertHandler(VectorHandler::LeftButtonUpHandler,&mLeftButtonUpHandler);
insertHandler(VectorHandler::MouseMoveHandler,&mMouseMoveHandler);
insertHandler(VectorHandler::CaptureChangedHandler,&mCaptureChangedHandler);
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
mParent->insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
}
void SplitterWnd::removeHandlers()
{
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
removeHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler);
removeHandler(VectorHandler::LeftButtonUpHandler,&mLeftButtonUpHandler);
removeHandler(VectorHandler::MouseMoveHandler,&mMouseMoveHandler);
removeHandler(VectorHandler::CaptureChangedHandler,&mCaptureChangedHandler);
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
mParent->removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
}
CallbackData::ReturnType SplitterWnd::createHandler(CallbackData &cbData)
{
sizeControls();
return true;
}
CallbackData::ReturnType SplitterWnd::paintHandler(CallbackData &cbData)
{
PaintInformation *pPaintInfo=(PaintInformation*)cbData.lParam();
PureDevice &pureDevice=(PureDevice&)*pPaintInfo;
pureDevice.line(Point(0,0),Point(0,height()-1),mLightPen);
pureDevice.line(Point(1,0),Point(1,height()-1),mHiLightPen);
pureDevice.line(Point(width()-2,0),Point(width()-2,height()-1),mShadowPen);
pureDevice.line(Point(width()-1,0),Point(width()-1,height()-1),mDkShadowPen);
return false;
}
CallbackData::ReturnType SplitterWnd::parentSizeHandler(CallbackData &cbData)
{
sizeControls();
return false;
}
CallbackData::ReturnType SplitterWnd::leftButtonDownHandler(CallbackData &cbData)
{
Rect parentRect;
Rect currRect;
Point clickPoint;
clickPoint.x(cbData.loWord());
clickPoint.y(cbData.hiWord());
setCapture();
mParent->clientRect(parentRect);
mParent->clientToScreen(parentRect);
clientRect(currRect);
clientToScreen(currRect);
mDragStart=currRect.left()-parentRect.left()+width()/2-clickPoint.x();
mDragx=mDragStart+clickPoint.x();
PureDevice pureDevice(*mParent);
pureDevice.setDrawMode(PureDevice::R2NOTXORPEN);
pureDevice.line(Point(mDragx,0),Point(mDragx,height()-1));
return false;
}
CallbackData::ReturnType SplitterWnd::leftButtonUpHandler(CallbackData &cbData)
{
Point mousePoint;
mousePoint.x(cbData.loWord());
mousePoint.y(cbData.hiWord());
releaseCapture();
moveSplitter(mDragStart+mousePoint.x());
return false;
}
CallbackData::ReturnType SplitterWnd::mouseMoveHandler(CallbackData &cbData)
{
if(!hasCapture())return false;
Point mousePoint;
mousePoint.x(cbData.loWord());
mousePoint.y(cbData.hiWord());
PureDevice pureDevice(*mParent);
pureDevice.setDrawMode(PureDevice::R2NOTXORPEN);
pureDevice.line(Point(mDragx,0),Point(mDragx,height()-1));
mDragx=mDragStart+mousePoint.x();
pureDevice.line(Point(mDragx,0),Point(mDragx,height()-1));
return false;
}
CallbackData::ReturnType SplitterWnd::captureChangedHandler(CallbackData &cbData)
{
PureDevice pureDevice(*mParent);
pureDevice.setDrawMode(PureDevice::R2NOTXORPEN);
pureDevice.line(Point(mDragx,0),Point(mDragx,height()-1));
return false;
}
CallbackData::ReturnType SplitterWnd::destroyHandler(CallbackData &cbData)
{
return false;
}
void SplitterWnd::sizeControls()
{
int parentWidth=mParent->width();
int parentHeight=mParent->height();
int xsplit=(parentWidth*mSplitRatio)/100.00;
if(xsplit<0)xsplit=0;
if(xsplit+mSplitWidth>=parentWidth)xsplit=parentWidth-mSplitWidth;
moveWindow(xsplit,0,mSplitWidth,parentHeight,false);
mPane1->moveWindow(0,0,xsplit,parentHeight,true);
mPane2->moveWindow(xsplit+mSplitWidth,0,parentWidth-xsplit-mSplitWidth,parentHeight,true);
update();
}
void SplitterWnd::moveSplitter(int xLoc)
{
mSplitRatio=xLoc*100.00/mParent->width();
if(mSplitRatio<0)mSplitRatio=0;
else if(mSplitRatio>100)mSplitRatio=100;
sizeControls();
}

61
splitter/SplitterWnd.hpp Normal file
View File

@@ -0,0 +1,61 @@
#ifndef _SPLITTER_SPLITTERWND_HPP_
#define _SPLITTER_SPLITTERWND_HPP_
#ifndef _COMMON_WINDOW_HPP_
#include <common/window.hpp>
#endif
#ifndef _COMMON_CALLBACK_HPP_
#include <common/callback.hpp>
#endif
#ifndef _COMMON_BRUSH_HPP_
#include <common/brush.hpp>
#endif
#ifndef _COMMON_PEN_HPP_
#include <common/pen.hpp>
#endif
class SplitterWnd : public Window
{
public:
enum {SplitRatio=50,SplitWidth=8};
SplitterWnd(GUIWindow &parent,GUIWindow &pane1,GUIWindow &pane2,int splitRatio=SplitRatio);
virtual ~SplitterWnd();
void moveSplitter(int xLoc);
private:
enum {ControlID=5000};
void registerClass(void);
void insertHandlers(void);
void removeHandlers(void);
CallbackData::ReturnType createHandler(CallbackData &cbData);
CallbackData::ReturnType paintHandler(CallbackData &cbData);
CallbackData::ReturnType leftButtonDownHandler(CallbackData &cbData);
CallbackData::ReturnType leftButtonUpHandler(CallbackData &cbData);
CallbackData::ReturnType mouseMoveHandler(CallbackData &cbData);
CallbackData::ReturnType captureChangedHandler(CallbackData &cbData);
CallbackData::ReturnType destroyHandler(CallbackData &cbData);
CallbackData::ReturnType parentSizeHandler(CallbackData &cbData);
void sizeControls(void);
Callback<SplitterWnd> mCreateHandler;
Callback<SplitterWnd> mPaintHandler;
Callback<SplitterWnd> mLeftButtonDownHandler;
Callback<SplitterWnd> mLeftButtonUpHandler;
Callback<SplitterWnd> mMouseMoveHandler;
Callback<SplitterWnd> mCaptureChangedHandler;
Callback<SplitterWnd> mDestroyHandler;
Callback<SplitterWnd> mSizeHandler;
SmartPointer<GUIWindow> mParent;
SmartPointer<GUIWindow> mPane1;
SmartPointer<GUIWindow> mPane2;
Pen mLightPen;
Pen mHiLightPen;
Pen mShadowPen;
Pen mDkShadowPen;
int mSplitRatio;
int mSplitWidth;
int mDragStart;
int mDragx;
Brush mBkGndBrush;
static char smszClassName[];
};
#endif

122
splitter/hold/splitter.dsp Normal file
View File

@@ -0,0 +1,122 @@
# Microsoft Developer Studio Project File - Name="splitter" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=splitter - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "splitter.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "splitter.mak" CFG="splitter - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "splitter - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "splitter - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "splitter - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "splitter - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "splitter - Win32 Release"
# Name "splitter - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\main.cpp
# End Source File
# Begin Source File
SOURCE=.\mainfrm.cpp
# End Source File
# Begin Source File
SOURCE=.\NewsTree.cpp
# End Source File
# Begin Source File
SOURCE=.\SplitterWnd.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\splitter.rc
# End Source File
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,74 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "bsptree"=..\bsptree\bsptree.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "imagelst"=..\imagelst\imagelst.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "splitter"=.\splitter.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name bsptree
End Project Dependency
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
Begin Project Dependency
Project_Dep_Name imagelst
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
splitter/hold/splitter.opt Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: splitter - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSP179.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib comctl32.lib /nologo /subsystem:windows /incremental:yes /pdb:"debug/splitter.pdb" /debug /machine:I386 /out:"debug/splitter.exe" /pdbtype:sept
.\debug\main.obj
.\debug\mainfrm.obj
.\debug\SplitterWnd.obj
.\debug\splitter.res
.\debug\NewsTree.obj
\work\exe\msbsp.lib
\work\exe\mscommon.lib
\work\exe\imagelst.lib
]
Creating command line "link.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSP179.tmp"
<h3>Output Window</h3>
Linking...
Creating library debug/splitter.lib and object debug/splitter.exp
<h3>Results</h3>
splitter.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

12
splitter/main.cpp Normal file
View File

@@ -0,0 +1,12 @@
#include <common/windows.hpp>
#include <splitter/mainfrm.hpp>
#include <splitter/splitter.hpp>
int PASCAL WinMain(HINSTANCE /*hInstance*/,HINSTANCE /*hPrevInstance*/,LPSTR /*lpszCmdLine*/,int /*nCmdShow*/)
{
MainFrame frameWindow;
frameWindow.createWindow("NNTP",String(STRING_SPLITTER)+String(" ")+String(STRING_VERSION),"mainMenu","NNTP");
return ((FrameWindow&)frameWindow).messageLoop();
}

149
splitter/mainfrm.cpp Normal file
View File

@@ -0,0 +1,149 @@
#include <splitter/mainfrm.hpp>
#include <splitter/splitter.hpp>
#include <splitter/SplitterWnd.hpp>
#include <common/mdiwin.hpp>
#include <common/control.hpp>
MainFrame::MainFrame(void)
{
mPaintHandler.setCallback(this,&MainFrame::paintHandler);
mCloseHandler.setCallback(this,&MainFrame::closeHandler);
mQueryEndSessionHandler.setCallback(this,&MainFrame::queryEndSessionHandler);
mDestroyHandler.setCallback(this,&MainFrame::destroyHandler);
mCommandHandler.setCallback(this,&MainFrame::commandHandler);
mKeyDownHandler.setCallback(this,&MainFrame::keyDownHandler);
mSizeHandler.setCallback(this,&MainFrame::sizeHandler);
mCreateHandler.setCallback(this,&MainFrame::createHandler);
insertHandlers();
}
MainFrame::~MainFrame()
{
removeHandlers();
}
void MainFrame::insertHandlers(void)
{
FrameWindow::insertHandler(MainFrame::DestroyHandler,&mDestroyHandler);
FrameWindow::insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
FrameWindow::insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
FrameWindow::insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
FrameWindow::insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
FrameWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
FrameWindow::insertHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
FrameWindow::insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
}
void MainFrame::removeHandlers(void)
{
FrameWindow::removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
FrameWindow::removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
FrameWindow::removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
FrameWindow::removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
FrameWindow::removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
FrameWindow::removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
FrameWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
FrameWindow::removeHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
}
CallbackData::ReturnType MainFrame::commandHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wParam())
{
case IDM_CASCADE :
cascade();
break;
case IDM_TILE :
tile();
break;
case IDM_ARRANGE :
arrange();
break;
case IDM_CLOSEALL :
closeAll();
break;
case IDM_MINIMIZEALL :
minimizeAll();
break;
case IDM_RESTOREALL :
restoreAll();
break;
case SPLITTER_FILE_OPEN :
break;
case SPLITTER_FILE_BROWSE :
break;
case SPLITTER_FILE_EXIT :
break;
default :
break;
}
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::keyDownHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::paintHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::createHandler(CallbackData &/*someCallbackData*/)
{
show(SW_SHOW);
update();
mControl2=::new Control();
mControl2.disposition(PointerDisposition::Delete);
mControl2->createControl("EDIT","pane2",WS_VISIBLE,Rect(CW_USEDEFAULT,CW_USEDEFAULT,100,100),*this,102);
mNewsTree=::new NewsTree(*this,Rect(0,0,100,100),105);
mNewsTree.disposition(PointerDisposition::Delete);
mSplitterWnd=::new SplitterWnd(*this,*mNewsTree,*mControl2);
mSplitterWnd.disposition(PointerDisposition::Delete);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::queryEndSessionHandler(CallbackData &someCallbackData)
{
if(getClient().hasChildren())return (CallbackData::ReturnType)FALSE;
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::closeHandler(CallbackData &someCallbackData)
{
destroy();
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::destroyHandler(CallbackData &/*someCallbackData*/)
{
removeHandlers();
::PostQuitMessage(0);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::sizeHandler(CallbackData &someCallbackData)
{
return (CallbackData::ReturnType)FALSE;
}
// ** virtuals
void MainFrame::mdiDestroy(MDIWindow &mdiWindow)
{
}
void MainFrame::mdiActivate(MDIWindow &mdiWindow)
{
}
void MainFrame::mdiDeactivate(MDIWindow &mdiWindow)
{
}

60
splitter/mainfrm.hpp Normal file
View File

@@ -0,0 +1,60 @@
#ifndef _SPLITTER_MAINFRAME_HPP_
#define _SPLITTER_MAINFRAME_HPP_
#ifndef _COMMON_MDIFRM_HPP_
#include <common/mdifrm.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
#ifndef _SPLITTER_NEWSTREE_HPP_
#include <splitter/NewsTree.hpp>
#endif
class SplitterWnd;
class MainFrame : public FrameWindow
{
public:
MainFrame(void);
virtual ~MainFrame();
protected:
virtual void mdiDestroy(MDIWindow &mdiWindow);
virtual void mdiActivate(MDIWindow &mdiWindow);
virtual void mdiDeactivate(MDIWindow &mdiWindow);
private:
enum{StatusBarID=101};
CallbackData::ReturnType closeHandler(CallbackData &cbData);
CallbackData::ReturnType queryEndSessionHandler(CallbackData &cbData);
CallbackData::ReturnType paintHandler(CallbackData &cbData);
CallbackData::ReturnType destroyHandler(CallbackData &cbData);
CallbackData::ReturnType commandHandler(CallbackData &cbData);
CallbackData::ReturnType keyDownHandler(CallbackData &cbData);
CallbackData::ReturnType sizeHandler(CallbackData &cbData);
CallbackData::ReturnType createHandler(CallbackData &cbData);
CallbackData::ReturnType lineHandler(CallbackData &cbData);
CallbackData::ReturnType browseSelectHandler(CallbackData &cbData);
void insertHandlers(void);
void removeHandlers(void);
Callback<MainFrame> mPaintHandler;
Callback<MainFrame> mDestroyHandler;
Callback<MainFrame> mCommandHandler;
Callback<MainFrame> mKeyDownHandler;
Callback<MainFrame> mSizeHandler;
Callback<MainFrame> mCreateHandler;
Callback<MainFrame> mCloseHandler;
Callback<MainFrame> mQueryEndSessionHandler;
Callback<MainFrame> mBrowseSelectHandler;
SmartPointer<SplitterWnd> mSplitterWnd;
SmartPointer<Control> mControl1;
SmartPointer<Control> mControl2;
SmartPointer<NewsTree> mNewsTree;
};
#endif

53
splitter/scraps.txt Normal file
View File

@@ -0,0 +1,53 @@
size(mParent->width(),mParent->height());
void SplitterWnd::size(int width,int height)
{
sizeControls();
/*
int splitx;
splitx=(mParent->width()*mSplitRatio)/100.00;
if(splitx<0)splitx=0;
if(splitx+mSplitWidth>=mParent->width())splitx=mParent->width()+mSplitWidth;
moveWindow(splitx,0,mSplitWidth,mParent->height(),false);
mPane1->moveWindow(0,0,splitx,mParent->height());
mPane2->moveWindow(splitx+mSplitWidth,0,mParent->width()-splitx-mSplitWidth,mParent->height());
update(); */
}
void MainFrame::addItem(const String &item,String &pathItem,String &parent,TreeView::NodeType nodeType)
{
String strNode;
HTREEITEM hTreeItem;
if(!item.strstr("."))
{
hTreeItem=mFolderTree->searchItem(parent);
if(hTreeItem && (mFolderTree->getChild(hTreeItem) || hTreeItem==mFolderTree->getRoot() ) )nodeType=TreeView::NodeSibling;
else nodeType=TreeView::NodeChild;
::OutputDebugString(String("Add")+getNodeType(nodeType)+String("2: Item='")+item+String("' ")+String("Parent='")+parent+String("'\n"));
TreeViewItem insertItem(0,0,0,0,(char*)item.str(),item.length(),FolderTree::FolderClosed,FolderTree::FolderOpen,0,(0<<16)|(0+1)); // makeItemID(nodeType,index+1)
mFolderTree->addNode(nodeType,insertItem,parent);
return;
}
strNode=item.betweenString('\0','.');
TreeViewItem insertItem(0,0,0,0,(char*)strNode.str(),strNode.length(),FolderTree::FolderClosed,FolderTree::FolderOpen,0,(0<<16)|(++mItemCount+1)); // makeItemID(nodeType,index+1)
::OutputDebugString(String("Looking for '")+strNode+String("'")+String("\n"));
if(!(hTreeItem=mFolderTree->searchItem(strNode)))
{
::OutputDebugString(String("Add")+getNodeType(nodeType)+String("1: Item='")+strNode+String("' ")+String("Parent='")+parent+String("'\n"));
mFolderTree->addNode(nodeType,insertItem,parent);
}
else
{
::OutputDebugString(String("Item '")+strNode+String("' is already in tree\n"));
}
addItem(item.betweenString('.','\0'),strNode,pathItem,TreeView::NodeChild);
}
String MainFrame::getNodeType(TreeView::NodeType nodeType)
{
if(TreeView::NodeChild==nodeType)return "NodeChild";
return "NodeSibling";
}

BIN
splitter/splitter.aps Normal file

Binary file not shown.

96
splitter/splitter.dsp Normal file
View File

@@ -0,0 +1,96 @@
# Microsoft Developer Studio Project File - Name="splitter" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=splitter - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "splitter.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "splitter.mak" CFG="splitter - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "splitter - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "splitter - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "splitter - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "splitter - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "splitter___Win32_Debug"
# PROP BASE Intermediate_Dir "splitter___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /Gz /MDd /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "splitter - Win32 Release"
# Name "splitter - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\SplitterWnd.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# End Target
# End Project

29
splitter/splitter.dsw Normal file
View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "splitter"=.\splitter.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

6
splitter/splitter.hpp Normal file
View File

@@ -0,0 +1,6 @@
#ifndef _SPLITTER_SPLITTER_HPP_
#define _SPLITTER_SPLITTER_HPP_
#ifndef _SPLITTER_RESOURCE_H_
#include <splitter/resource.h>
#endif
#endif

BIN
splitter/splitter.opt Normal file

Binary file not shown.

19
splitter/splitter.plg Normal file
View File

@@ -0,0 +1,19 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: splitter - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating command line "link.exe -lib /nologo /out:"debug\splitter.lib" .\debug\SplitterWnd.obj "
<h3>Output Window</h3>
Creating library...
<h3>Results</h3>
splitter.lib - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

155
splitter/splitter.rc Normal file
View File

@@ -0,0 +1,155 @@
//Microsoft Developer Studio generated resource script.
//
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "splitter\resource.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
LIST BITMAP "STRIP.BMP"
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Open...", SPLITTER_FILE_OPEN
MENUITEM "&Browse...", SPLITTER_FILE_BROWSE
MENUITEM "E&xit", SPLITTER_FILE_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents", SPLITTER_HELP_CONTENTS
MENUITEM "&Search", SPLITTER_HELP_SEARCH
MENUITEM SEPARATOR
MENUITEM "&Registration...", SPLITTER_REGISTRATION
MENUITEM SEPARATOR
MENUITEM "&About NewsCrawler...", SPLITTER_HELP_ABOUT
END
END
LOGMENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Open...", SPLITTER_FILE_OPEN
MENUITEM "&Browse...", SPLITTER_FILE_BROWSE
MENUITEM "E&xit", SPLITTER_FILE_EXIT
END
POPUP "&Window"
BEGIN
MENUITEM "&Cascade\tShift+F5", IDM_CASCADE
MENUITEM "&Tile\tShift+F4", IDM_TILE
MENUITEM "&Arrange &icons", IDM_ARRANGE
MENUITEM SEPARATOR
MENUITEM "Close &all", IDM_CLOSEALL
MENUITEM "Mi&nimize all", IDM_MINIMIZEALL
MENUITEM "&Restore all", IDM_RESTOREALL
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents", SPLITTER_HELP_CONTENTS
MENUITEM "&Search", SPLITTER_HELP_SEARCH
MENUITEM SEPARATOR
MENUITEM "&Registration...", SPLITTER_REGISTRATION
MENUITEM SEPARATOR
MENUITEM "&About NewsCrawler...", SPLITTER_HELP_ABOUT
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resrc1.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""splitter\\resource.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
STRING_SPLITTER "Splitter"
STRING_VERSION "v1.00"
STRING_MAINVIEWCLASSNAME "SplitterView"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

123
splitter/splittertest.dsp Normal file
View File

@@ -0,0 +1,123 @@
# Microsoft Developer Studio Project File - Name="splittertest" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=splittertest - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "splittertest.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "splittertest.mak" CFG="splittertest - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "splittertest - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "splittertest - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "splittertest - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "splittertest - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "splittertest___Win32_Debug"
# PROP BASE Intermediate_Dir "splittertest___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /Gz /MTd /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /D "__FLAT__" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "splittertest - Win32 Release"
# Name "splittertest - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\main.cpp
# End Source File
# Begin Source File
SOURCE=.\mainfrm.cpp
# End Source File
# Begin Source File
SOURCE=.\NewsTree.cpp
# End Source File
# Begin Source File
SOURCE=.\splitter.rc
# End Source File
# Begin Source File
SOURCE=.\SplitterWnd.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

59
splitter/splittertest.dsw Normal file
View File

@@ -0,0 +1,59 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "imagelst"=..\imagelst\imagelst.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "splittertest"=.\splittertest.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
Begin Project Dependency
Project_Dep_Name imagelst
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
splitter/splittertest.ncb Normal file

Binary file not shown.

BIN
splitter/splittertest.opt Normal file

Binary file not shown.

67
splitter/splittertest.plg Normal file
View File

@@ -0,0 +1,67 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: imagelst - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\sean\LOCALS~1\Temp\RSP10.tmp" with contents
[
/nologo /MTd /GX /ZI /Od /I "\work" /I "\parts" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp".\msvcobj/imagelst.pch" /YX /Fo".\msvcobj/" /Fd".\msvcobj/" /FD /c
"D:\work\imagelst\Ftree.cpp"
"D:\work\imagelst\Imagelst.cpp"
"D:\work\imagelst\Stdtmpl.cpp"
"D:\work\imagelst\Treeview.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\sean\LOCALS~1\Temp\RSP10.tmp"
Creating command line "link.exe -lib /nologo /out:"..\exe\imagelst.lib" .\msvcobj\Ftree.obj .\msvcobj\Imagelst.obj .\msvcobj\Stdtmpl.obj .\msvcobj\Treeview.obj "
<h3>Output Window</h3>
Compiling...
Ftree.cpp
Imagelst.cpp
Stdtmpl.cpp
Treeview.cpp
Creating library...
<h3>
--------------------Configuration: splittertest - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\sean\LOCALS~1\Temp\RSP11.tmp" with contents
[
/nologo /Gz /MTd /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /D "__FLAT__" /Fo"debug/" /Fd"debug/" /FD /GZ /c
"D:\work\splitter\main.cpp"
"D:\work\splitter\mainfrm.cpp"
"D:\work\splitter\NewsTree.cpp"
"D:\work\splitter\SplitterWnd.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\sean\LOCALS~1\Temp\RSP11.tmp"
Creating temporary file "C:\DOCUME~1\sean\LOCALS~1\Temp\RSP12.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /incremental:yes /pdb:"debug/splittertest.pdb" /debug /machine:I386 /out:"debug/splittertest.exe" /pdbtype:sept
.\debug\main.obj
.\debug\mainfrm.obj
.\debug\NewsTree.obj
.\debug\SplitterWnd.obj
.\debug\splitter.res
\work\exe\mscommon.lib
\work\exe\imagelst.lib
]
Creating command line "link.exe @C:\DOCUME~1\sean\LOCALS~1\Temp\RSP12.tmp"
<h3>Output Window</h3>
Compiling...
main.cpp
mainfrm.cpp
NewsTree.cpp
SplitterWnd.cpp
Generating Code...
Linking...
Creating library debug/splittertest.lib and object debug/splittertest.exp
<h3>Results</h3>
splittertest.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>