OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/rtos/ecos-2.0/packages/services/gfx/mw/v2_0/src/demos/mwobjects
    from Rev 27 to Rev 174
    Reverse comparison

Rev 27 → Rev 174

/mwo-test.cc
0,0 → 1,512
/*
* Copyright (c) 1999 Greg Haerr <greg@censoft.com>
*
* Demo program for Micro-Windows
*/
 
#define MWINCLUDECOLORS
#include <mwobjects.h>
#include <iostream>
 
extern MWIMAGEHDR image_microwin;
extern MWIMAGEHDR image_zion208;
 
PMWIMAGEHDR image = &image_zion208;
 
using namespace MicroWindowsObjects;
 
class TestWindowClass
: public WindowClass
{
public:
TestWindowClass (LPCSTR lpszClassName);
};
 
class TestChildWindow
: public Window
{
public:
 
TestChildWindow ();
HWND create (LPCSTR lpszClassName,
HWND parent,
int x, int y,
int nWidth, int nHeight);
void set_trace (bool t)
{ trace = t; }
protected:
 
virtual LRESULT message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam);
private:
bool trace;
};
 
class TestWindow
: public Window
{
public:
 
TestWindow (LPCSTR lpszClassName, bool trace = false);
private:
bool trace;
Window button;
TestChildWindow image[3];
};
 
class Test3dWindow
: public Window
{
public:
 
Test3dWindow (LPCSTR lpszChild);
 
protected:
 
virtual LRESULT message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam);
private:
 
vec1 gx;
vec1 gy;
vec1 last_gx;
vec1 last_gy;
};
 
class TestRoseWindow
: public TestWindow
{
public:
 
TestRoseWindow (LPCSTR lpszClassName, bool trace = false);
protected:
 
virtual LRESULT message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam);
};
 
class TestCircleWindow
: public TestWindow
{
public:
 
TestCircleWindow (LPCSTR lpszClassName, bool trace = false);
protected:
 
virtual LRESULT message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam);
};
 
class TestDaisyWindow
: public TestWindow
{
public:
 
TestDaisyWindow (LPCSTR lpszClass, bool trace = false);
protected:
 
virtual LRESULT message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam);
};
 
class TestFileDescriptor
: public FileDescriptor
{
public:
void do_fd_test ();
protected:
 
LRESULT read ();
LRESULT write ();
LRESULT except ();
};
 
class TestApplication
: public Application
{
enum { GROUPS = 2 };
public:
 
TestApplication ();
protected:
 
virtual int initialise ();
virtual int shutdown ();
private:
 
TestWindowClass main_class;
 
Test3dWindow *t3d [GROUPS];
TestRoseWindow *tr [GROUPS];
TestCircleWindow *tc [GROUPS];
TestDaisyWindow *td [GROUPS];
 
TestFileDescriptor *fd;
};
 
TestWindowClass::TestWindowClass (LPCSTR lpszClassName)
: WindowClass (lpszClassName,
CS_DBLCLKS | CS_VREDRAW | CS_HREDRAW)
{
set_background ((HBRUSH) GetStockObject (LTGRAY_BRUSH));
}
 
TestChildWindow::TestChildWindow ()
{
}
 
HWND
TestChildWindow::create (LPCSTR lpszClassName,
HWND parent,
int x, int y,
int nWidth, int nHeight)
{
return Window::create (0,
lpszClassName,
"",
WS_BORDER | WS_CHILD | WS_VISIBLE,
x, y, nWidth, nHeight,
parent, 0, 0, 0);
}
 
LRESULT
TestChildWindow::message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam)
{
Paint paint (*this);
 
switch (msg)
{
case WM_PAINT:
paint.begin ();
 
DrawDIB (paint, paint.left (), paint.top (), image);
 
paint.end ();
break;
 
default:
return Window::message_handler (msg, wParam, lParam);
}
return 0;
}
 
TestWindow::TestWindow (LPCSTR lpszClassName, bool trace)
: trace (trace)
{
Rect rc (GetDesktopWindow ());
int width;
int height;
width = height = rc.right () / 2;
if (trace)
cout << "create: hwnd=" << get_handle ()
<< " " << rc << endl;
 
create (0, lpszClassName, "Micro C++ Application",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
width, height,
0, 0, 0, 0);
button.create (0, "BUTTON", "Ok",
WS_CHILD | WS_VISIBLE,
width * 5 / 8, 10, 50, 14,
*this, 0, 0, 0);
 
image[0].create (lpszClassName, *this,
4, 4,
width / 3, height / 3);
image[1].create (lpszClassName, *this,
width / 3, height / 3,
width / 3, height / 3);
image[2].create (lpszClassName, *this,
width * 3 / 5, height * 3 / 5,
width * 2 / 3, height * 2 / 3);
 
image[0].set_trace (trace);
image[1].set_trace (trace);
image[2].set_trace (trace);
 
}
 
Test3dWindow::Test3dWindow (LPCSTR lpszClassName)
: gx (0),
gy (0),
last_gx (0),
last_gy (0)
{
Rect rect (GetDesktopWindow ());
int width;
int height;
width = height = rect.right () / 2;
create (0, lpszClassName, "Micro C++ Application",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
width, height,
0, 0, 0, 0);
}
 
LRESULT
Test3dWindow::message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam)
{
Paint paint (*this, lParam);
Rect rc;
switch (msg)
{
case WM_PAINT:
paint.begin (true);
 
look3 (-2 * gx, -2 * gy, 1.2);
drawgrid (-8.0, 8.0, 10, -8.0, 8.0, 10);
 
last_gx = gx;
last_gy = gy;
paint.end ();
break;
 
case WM_MOUSEMOVE:
 
rc.get_client (*this);
gx = (vec1) paint.get_point_x () / rc.right ();
gy = (vec1) paint.get_point_y () / rc.bottom ();
 
if (gx > last_gx || gy > last_gy)
invalidate_rect (0, FALSE);
break;
 
default:
return Window::message_handler (msg, wParam, lParam);
}
return 0;
}
 
TestRoseWindow::TestRoseWindow (LPCSTR lpszClassName, bool trace)
: TestWindow (lpszClassName, trace)
{
}
 
LRESULT
TestRoseWindow::message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam)
{
Paint paint (*this);
switch (msg)
{
case WM_PAINT:
paint.begin (true);
rose (1.0, 7, 13);
 
paint.end ();
break;
 
default:
return Window::message_handler (msg, wParam, lParam);
}
return 0;
}
 
TestCircleWindow::TestCircleWindow (LPCSTR lpszClassName, bool trace)
: TestWindow (lpszClassName, trace)
{
}
 
LRESULT
TestCircleWindow::message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam)
{
Paint paint (*this);
switch (msg)
{
case WM_PAINT:
paint.begin (true);
setcolor3 (BLACK);
circle3 (1.0);
 
paint.end ();
break;
 
default:
return Window::message_handler (msg, wParam, lParam);
}
return 0;
}
 
TestDaisyWindow::TestDaisyWindow (LPCSTR lpszClassName, bool trace)
: TestWindow (lpszClassName, trace)
{
}
 
LRESULT
TestDaisyWindow::message_handler (UINT msg,
WPARAM wParam,
LPARAM lParam)
{
Paint paint (*this);
switch (msg)
{
case WM_PAINT:
paint.begin (true);
setcolor3 (BLUE);
daisy (1.0, 20);
 
paint.paint_3d ();
paint.text_out (10, 250, "Date built : %s", __DATE__);
paint.end ();
break;
case WM_LBUTTONDOWN:
cout << "left down : " << *this << endl;
SendMessage (*this, WM_FDINPUT, 200, 0);
return Window::message_handler (msg, wParam, lParam);
break;
case WM_RBUTTONDOWN:
cout << "right down : " << *this << endl;
SendMessage (*this, WM_FDOUTPUT, 200, 0);
return Window::message_handler (msg, wParam, lParam);
break;
case WM_LBUTTONDBLCLK:
cout << "double left : " << *this << endl;
SendMessage (*this, WM_FDEXCEPT, 200, 0);
return Window::message_handler (msg, wParam, lParam);
break;
default:
return Window::message_handler (msg, wParam, lParam);
}
return 0;
}
 
void
TestFileDescriptor::do_fd_test ()
{
}
 
LRESULT
TestFileDescriptor::read ()
{
cout << "test read fd for `" << *get_window () << "' and fd " << *this << endl;
return 0;
}
 
LRESULT
TestFileDescriptor::write ()
{
cout << "test write fd for `" << *get_window () << "' and fd " << *this << endl;
return 0;
}
 
LRESULT
TestFileDescriptor::except ()
{
cout << "test except fd for `" << *get_window () << "' and fd " << *this << endl;
return 0;
}
 
TestApplication::TestApplication ()
: Application (image_microwin),
main_class ("test")
{
for (int i = 0; i < GROUPS; i++)
{
t3d [i] = 0;
tr [i] = 0;
tc [i] = 0;
td [i] = 0;
}
}
 
int
TestApplication::initialise ()
{
main_class.register_class ();
 
for (int i = 0; i < GROUPS; i++)
{
t3d [i] = new Test3dWindow ("test");
tr [i] = new TestRoseWindow ("test");
tc [i] = new TestCircleWindow ("test");
td [i] = new TestDaisyWindow ("test");
}
 
fd = new TestFileDescriptor ();
cout << "attach to " << *td[GROUPS - 1] << endl;
td[GROUPS - 1]->attach (200, *fd);
return 0;
}
 
int
TestApplication::shutdown ()
{
for (int i = 0; i < GROUPS; i++)
{
if (t3d [i])
delete t3d [i];
t3d [i] = 0;
if (tr [i])
delete tr [i];
tr [i] = 0;
if (tc [i])
delete tc [i];
tc [i] = 0;
if (td [i])
delete td [i];
td [i] = 0;
}
return 0;
}
 
TestApplication test_application;
/Makefile
0,0 → 1,51
##############################################################################
#
# MW Objects Makefile
#
# (c) Chris Johns 2000
#
##############################################################################
 
include $(CONFIG)
 
# Do nothing for RTEMS
ifneq ($(ARCH), RTEMS)
 
######################## Additional Flags section ############################
 
# Directories list for header files
INCLUDEDIRS +=
# Defines for preprocessor
DEFINES +=
 
# Compilation flags for C files OTHER than include directories
CFLAGS +=
# Preprocessor flags OTHER than defines
CPPFLAGS +=
# Linking flags
LDFLAGS +=
 
############################# targets section ################################
 
ifeq ($(OBJFRAMEWORK), Y)
 
# List of objects to compile
CXOBJS = mwo-test.o
 
all: default $(TOP)/bin/mwo-test
 
endif
 
######################### Makefile.rules section #############################
 
include $(TOP)/Makefile.rules
 
######################## Tools targets section ###############################
 
CCMWINLIBS = -lmwobjects -lmwin -lmwinlib -lmwengine -lmwdrivers -lmwfonts -lmwimages -lm
 
$(TOP)/bin/mwo-test: mwo-test.o
$(CXX) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(CCMWINLIBS)
 
 
endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.