The mother of all commits. :P
Unremoved zlib and added libpng to public libs (C'mon DW, make up your mind... ;^) Added screenshot support to app_server Added full keyboard message support to app_server Added UseLibraryHeaders and LibraryHeaders rules to jamrules Updated ColorUtils to convert uint32 colors to rgb_colors BAppServerLink now autolocks client-server communications on the client side (as it should) app_server now also juliennes and makes french fries. Yum. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3045 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -33,6 +33,10 @@
|
||||
#include <OS.h>
|
||||
#include <GraphicsDefs.h>
|
||||
#include <Font.h>
|
||||
#include <BitmapStream.h>
|
||||
#include <File.h>
|
||||
#include <Entry.h>
|
||||
#include <TranslatorRoster.h>
|
||||
|
||||
#include "Angle.h"
|
||||
#include "PortLink.h"
|
||||
@@ -44,6 +48,7 @@
|
||||
#include "ServerFont.h"
|
||||
#include "FontFamily.h"
|
||||
#include "LayerData.h"
|
||||
#include "PNGDump.h"
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -56,7 +61,9 @@ VDWIN_MOVECURSOR,
|
||||
VDWIN_SETCURSOR,
|
||||
};
|
||||
|
||||
ViewDriver *viewdriver_global;
|
||||
//ViewDriver *viewdriver_global;
|
||||
|
||||
extern RGBColor workspace_default_color;
|
||||
|
||||
|
||||
VDView::VDView(BRect bounds)
|
||||
@@ -204,6 +211,7 @@ void VDView::MouseUp(BPoint pt)
|
||||
|
||||
void VDView::MessageReceived(BMessage *msg)
|
||||
{
|
||||
printf("message received\n");
|
||||
switch(msg->what)
|
||||
{
|
||||
#ifdef ENABLE_INPUT_SERVER_EMULATION
|
||||
@@ -243,6 +251,163 @@ void VDWindow::MessageReceived(BMessage *msg)
|
||||
{
|
||||
switch(msg->what)
|
||||
{
|
||||
case B_KEY_DOWN:
|
||||
{
|
||||
// Attached Data:
|
||||
// 1) int64 bigtime_t object of when the message was sent
|
||||
// 2) int32 raw key code (scancode)
|
||||
// 3) int32 modifier-independent ASCII code for the character
|
||||
// 4) int32 repeat count
|
||||
// 5) int32 modifiers
|
||||
// 6) int8[3] UTF-8 data generated
|
||||
// 7) int8 number of bytes to follow containing the
|
||||
// generated string
|
||||
// 8) Character string generated by the keystroke
|
||||
// 10) int8[16] state of all keys
|
||||
bigtime_t systime;
|
||||
int32 scancode, asciicode,repeatcount,modifiers;
|
||||
int8 utf8data[3];
|
||||
BString string;
|
||||
int8 keyarray[16];
|
||||
|
||||
systime=(int64)real_time_clock();
|
||||
msg->FindInt32("key",&scancode);
|
||||
msg->FindInt32("be:key_repeat",&repeatcount);
|
||||
msg->FindInt32("modifiers",&modifiers);
|
||||
msg->FindInt32("raw_char",&asciicode);
|
||||
msg->FindInt8("byte",0,utf8data);
|
||||
msg->FindInt8("byte",1,utf8data+1);
|
||||
msg->FindInt8("byte",2,utf8data+2);
|
||||
msg->FindString("bytes",&string);
|
||||
for(int8 i=0;i<15;i++)
|
||||
msg->FindInt8("states",i,&keyarray[i]);
|
||||
view->serverlink->SetOpCode(B_KEY_DOWN);
|
||||
view->serverlink->Attach(&systime,sizeof(bigtime_t));
|
||||
view->serverlink->Attach(scancode);
|
||||
view->serverlink->Attach(asciicode);
|
||||
view->serverlink->Attach(repeatcount);
|
||||
view->serverlink->Attach(modifiers);
|
||||
view->serverlink->Attach(utf8data,sizeof(int8)*3);
|
||||
view->serverlink->Attach(string.Length()+1);
|
||||
view->serverlink->Attach(string.String());
|
||||
view->serverlink->Attach(keyarray,sizeof(int8)*16);
|
||||
view->serverlink->Flush();
|
||||
break;
|
||||
}
|
||||
case B_KEY_UP:
|
||||
{
|
||||
// Attached Data:
|
||||
// 1) int64 bigtime_t object of when the message was sent
|
||||
// 2) int32 raw key code (scancode)
|
||||
// 3) int32 modifier-independent ASCII code for the character
|
||||
// 4) int32 modifiers
|
||||
// 5) int8[3] UTF-8 data generated
|
||||
// 6) int8 number of bytes to follow containing the
|
||||
// generated string
|
||||
// 7) Character string generated by the keystroke
|
||||
// 8) int8[16] state of all keys
|
||||
bigtime_t systime;
|
||||
int32 scancode, asciicode,modifiers;
|
||||
int8 utf8data[3];
|
||||
BString string;
|
||||
int8 keyarray[16];
|
||||
|
||||
systime=(int64)real_time_clock();
|
||||
msg->FindInt32("key",&scancode);
|
||||
msg->FindInt32("raw_char",&asciicode);
|
||||
msg->FindInt32("modifiers",&modifiers);
|
||||
msg->FindInt8("byte",0,utf8data);
|
||||
msg->FindInt8("byte",1,utf8data+1);
|
||||
msg->FindInt8("byte",2,utf8data+2);
|
||||
msg->FindString("bytes",&string);
|
||||
for(int8 i=0;i<15;i++)
|
||||
msg->FindInt8("states",i,&keyarray[i]);
|
||||
view->serverlink->SetOpCode(B_KEY_UP);
|
||||
view->serverlink->Attach(&systime,sizeof(bigtime_t));
|
||||
view->serverlink->Attach(scancode);
|
||||
view->serverlink->Attach(asciicode);
|
||||
view->serverlink->Attach(modifiers);
|
||||
view->serverlink->Attach(utf8data,sizeof(int8)*3);
|
||||
view->serverlink->Attach(string.Length()+1);
|
||||
view->serverlink->Attach(string.String());
|
||||
view->serverlink->Attach(keyarray,sizeof(int8)*16);
|
||||
view->serverlink->Flush();
|
||||
break;
|
||||
}
|
||||
case B_UNMAPPED_KEY_DOWN:
|
||||
{
|
||||
// Attached Data:
|
||||
// 1) int64 bigtime_t object of when the message was sent
|
||||
// 2) int32 raw key code (scancode)
|
||||
// 3) int32 modifiers
|
||||
// 4) int8[16] state of all keys
|
||||
bigtime_t systime;
|
||||
int32 scancode,modifiers;
|
||||
int8 keyarray[16];
|
||||
|
||||
systime=(int64)real_time_clock();
|
||||
msg->FindInt32("key",&scancode);
|
||||
msg->FindInt32("modifiers",&modifiers);
|
||||
for(int8 i=0;i<15;i++)
|
||||
msg->FindInt8("states",i,&keyarray[i]);
|
||||
view->serverlink->SetOpCode(B_UNMAPPED_KEY_DOWN);
|
||||
view->serverlink->Attach(&systime,sizeof(bigtime_t));
|
||||
view->serverlink->Attach(scancode);
|
||||
view->serverlink->Attach(modifiers);
|
||||
view->serverlink->Attach(keyarray,sizeof(int8)*16);
|
||||
view->serverlink->Flush();
|
||||
break;
|
||||
}
|
||||
case B_UNMAPPED_KEY_UP:
|
||||
{
|
||||
// Attached Data:
|
||||
// 1) int64 bigtime_t object of when the message was sent
|
||||
// 2) int32 raw key code (scancode)
|
||||
// 3) int32 modifiers
|
||||
// 4) int8[16] state of all keys
|
||||
bigtime_t systime;
|
||||
int32 scancode,modifiers;
|
||||
int8 keyarray[16];
|
||||
|
||||
systime=(int64)real_time_clock();
|
||||
msg->FindInt32("key",&scancode);
|
||||
msg->FindInt32("modifiers",&modifiers);
|
||||
for(int8 i=0;i<15;i++)
|
||||
msg->FindInt8("states",i,&keyarray[i]);
|
||||
view->serverlink->SetOpCode(B_UNMAPPED_KEY_UP);
|
||||
view->serverlink->Attach(&systime,sizeof(bigtime_t));
|
||||
view->serverlink->Attach(scancode);
|
||||
view->serverlink->Attach(modifiers);
|
||||
view->serverlink->Attach(keyarray,sizeof(int8)*16);
|
||||
view->serverlink->Flush();
|
||||
break;
|
||||
}
|
||||
case B_MODIFIERS_CHANGED:
|
||||
{
|
||||
// Attached Data:
|
||||
// 1) int64 bigtime_t object of when the message was sent
|
||||
// 2) int32 modifiers
|
||||
// 3) int32 old modifiers
|
||||
// 4) int8 state of all keys
|
||||
bigtime_t systime;
|
||||
int32 scancode,modifiers,oldmodifiers;
|
||||
int8 keyarray[16];
|
||||
|
||||
systime=(int64)real_time_clock();
|
||||
msg->FindInt32("key",&scancode);
|
||||
msg->FindInt32("modifiers",&modifiers);
|
||||
msg->FindInt32("be:old_modifiers",&oldmodifiers);
|
||||
for(int8 i=0;i<15;i++)
|
||||
msg->FindInt8("states",i,&keyarray[i]);
|
||||
view->serverlink->SetOpCode(B_MODIFIERS_CHANGED);
|
||||
view->serverlink->Attach(&systime,sizeof(bigtime_t));
|
||||
view->serverlink->Attach(scancode);
|
||||
view->serverlink->Attach(modifiers);
|
||||
view->serverlink->Attach(oldmodifiers);
|
||||
view->serverlink->Attach(keyarray,sizeof(int8)*16);
|
||||
view->serverlink->Flush();
|
||||
break;
|
||||
}
|
||||
case VDWIN_SHOWCURSOR:
|
||||
{
|
||||
if(view->hide_cursor>0)
|
||||
@@ -351,7 +516,7 @@ void VDWindow::WindowActivated(bool active)
|
||||
|
||||
ViewDriver::ViewDriver(void)
|
||||
{
|
||||
viewdriver_global=this;
|
||||
// viewdriver_global=this;
|
||||
screenwin=new VDWindow();
|
||||
framebuffer=screenwin->view->viewbmp;
|
||||
serverlink=screenwin->view->serverlink;
|
||||
@@ -464,7 +629,7 @@ void ViewDriver::SetMode(int32 space)
|
||||
framebuffer->AddChild(drawview);
|
||||
|
||||
framebuffer->Lock();
|
||||
drawview->SetHighColor(80,85,152);
|
||||
drawview->SetHighColor(workspace_default_color.GetColor32());
|
||||
drawview->FillRect(drawview->Bounds());
|
||||
drawview->Sync();
|
||||
framebuffer->Unlock();
|
||||
@@ -534,12 +699,18 @@ printf("ViewDriver:: DrawString(\"%s\",%ld,BPoint(%f,%f))\n",string,length,pt.x,
|
||||
|
||||
}
|
||||
*/
|
||||
/*
|
||||
|
||||
bool ViewDriver::DumpToFile(const char *path)
|
||||
{
|
||||
return false;
|
||||
// Dump to PNG
|
||||
_Lock();
|
||||
SaveToPNG(path,framebuffer->Bounds(),framebuffer->ColorSpace(),
|
||||
framebuffer->Bits(),framebuffer->BitsLength(),framebuffer->BytesPerRow());
|
||||
|
||||
_Unlock();
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
void ViewDriver::FillArc(BRect r, float angle, float span, LayerData *d, int8 *pat)
|
||||
{
|
||||
if(!pat || !d)
|
||||
|
||||
Reference in New Issue
Block a user