Prototype of an absolutely insane game.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29952 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
SubDir HAIKU_TOP src add-ons tracker ;
|
||||
|
||||
SubInclude HAIKU_TOP src add-ons tracker filetype ;
|
||||
SubInclude HAIKU_TOP src add-ons tracker iconvader ;
|
||||
SubInclude HAIKU_TOP src add-ons tracker opentargetfolder ;
|
||||
SubInclude HAIKU_TOP src add-ons tracker mark_as ;
|
||||
SubInclude HAIKU_TOP src add-ons tracker zipomatic ;
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* Copyright 2006, Axel Dörfler, [email protected]. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#include <Alert.h>
|
||||
#include <Messenger.h>
|
||||
#include <Roster.h>
|
||||
#include <View.h>
|
||||
|
||||
#include "PoseView.h"
|
||||
|
||||
static void Error(BView *view, status_t status, bool unlock=false)
|
||||
{
|
||||
BAlert *alert;
|
||||
if (view && unlock)
|
||||
view->UnlockLooper();
|
||||
BString s(strerror(status));
|
||||
alert = new BAlert("Error", s.String(), "Ok");
|
||||
alert->Go();
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Tracker add-on entry
|
||||
*/
|
||||
extern "C" void
|
||||
process_refs(entry_ref dir, BMessage* refs, void* /*reserved*/)
|
||||
{
|
||||
status_t status;
|
||||
BAlert *alert;
|
||||
BMessenger msgr;
|
||||
BPoseView *view = NULL;
|
||||
BMessage poseViewBackup;
|
||||
BMessage poseViewColumnBackup;
|
||||
uint32 poseViewModeBackup;
|
||||
BString windowTitleBackup;
|
||||
|
||||
refs->PrintToStream();
|
||||
|
||||
status = refs->FindMessenger("TrackerViewToken", &msgr);
|
||||
if (status < B_OK) {
|
||||
Error(view, status);
|
||||
return;
|
||||
}
|
||||
|
||||
status = B_ERROR;
|
||||
if (!msgr.LockTarget()) {
|
||||
Error(view, status);
|
||||
return;
|
||||
}
|
||||
|
||||
status = B_BAD_HANDLER;
|
||||
view = dynamic_cast<BPoseView *>(msgr.Target(NULL));
|
||||
if (!view) {
|
||||
Error(view, status);
|
||||
return;
|
||||
}
|
||||
if (dynamic_cast<BWindow *>(view->Looper()) == NULL) {
|
||||
Error(view, status, true);
|
||||
return;
|
||||
}
|
||||
|
||||
windowTitleBackup = view->Window()->Title();
|
||||
|
||||
view->SaveColumnState(poseViewColumnBackup);
|
||||
view->SaveState(poseViewBackup);
|
||||
view->SetDragEnabled(false);
|
||||
view->SetSelectionRectEnabled(false);
|
||||
view->SetPoseEditing(false);
|
||||
poseViewModeBackup = view->ViewMode();
|
||||
|
||||
|
||||
view->SetViewMode(kIconMode);
|
||||
|
||||
view->ShowBarberPole();
|
||||
|
||||
|
||||
view->UnlockLooper();
|
||||
|
||||
|
||||
|
||||
//alert = new BAlert("Error", "Plop", "Ok");
|
||||
//alert->Go();
|
||||
|
||||
|
||||
int32 score = 0;
|
||||
int32 count = 300;
|
||||
while (count--) {
|
||||
status = B_ERROR;
|
||||
if (!msgr.LockTarget()) {
|
||||
Error(view, status);
|
||||
return;
|
||||
}
|
||||
|
||||
BPose *pose;
|
||||
for (int32 i = 0; (pose = view->PoseAtIndex(i)); i++) {
|
||||
if (pose->IsSelected()) {
|
||||
score++;
|
||||
pose->Select(false);
|
||||
}
|
||||
BPoint location = pose->Location();
|
||||
location.x += ((rand() % 20) - 10);
|
||||
location.y += ((rand() % 20) - 10);
|
||||
pose->SetLocation(location);
|
||||
}
|
||||
|
||||
view->CheckPoseVisibility();
|
||||
|
||||
view->Invalidate();
|
||||
|
||||
BString str("Score: ");
|
||||
str << score;
|
||||
view->Window()->SetTitle(str.String());
|
||||
|
||||
view->UnlockLooper();
|
||||
snooze(100000);
|
||||
}
|
||||
|
||||
|
||||
status = B_ERROR;
|
||||
if (!msgr.LockTarget()) {
|
||||
Error(view, status);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
status = B_BAD_HANDLER;
|
||||
view = dynamic_cast<BPoseView *>(msgr.Target(NULL));
|
||||
if (!view)
|
||||
goto err1;
|
||||
*/
|
||||
|
||||
view->HideBarberPole();
|
||||
view->SetViewMode(poseViewModeBackup);
|
||||
view->RestoreState(poseViewBackup);
|
||||
view->RestoreColumnState(poseViewColumnBackup);
|
||||
|
||||
view->Window()->SetTitle(windowTitleBackup.String());
|
||||
|
||||
/*
|
||||
BMessage('_RRC') {
|
||||
TrackerViewToken = BMessenger(port=32004, team=591, target=direct:0x131)
|
||||
} */
|
||||
|
||||
|
||||
//be_roster->Launch("application/x-vnd.haiku-filetypes", refs);
|
||||
|
||||
view->UnlockLooper();
|
||||
return;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* FileType.rdef
|
||||
*/
|
||||
|
||||
// The FileType add-on has no app signature as it is no standalone application
|
||||
//resource app_signature "application/x-vnd.Haiku-FileType";
|
||||
//resource app_flags B_MULTIPLE_LAUNCH;
|
||||
|
||||
resource file_types message {
|
||||
"types" = "application/x-vnd.Be-directory"
|
||||
};
|
||||
|
||||
resource app_version {
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 0,
|
||||
|
||||
internal = 1,
|
||||
|
||||
short_info = "IconVader",
|
||||
long_info = "IconVader, Copyright 2009 Haiku Inc."
|
||||
};
|
||||
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
resource vector_icon {
|
||||
$"6E6369660C0500040169020006023CADF43D104EBF02CA3EA2224BF02046648D"
|
||||
$"00FFDB97FFFCAF29020006023A6496BA3F153EBCDD3EEA91492CB5C09D5100FF"
|
||||
$"F7EAFEFDD17B020006023AB3673751B2BC59783FD2D74C71F846F85900C85805"
|
||||
$"FFF06306020106033AC71C0000000000003AB6DB4A6A0045300000F2F2F2FFBC"
|
||||
$"A184AB7D7A7A02000602388A280000000000004000004AF00000000000C85804"
|
||||
$"FFDC952F020006023B37D13A0397BB629E3CB4584A3EDF4A1E9400C6D7F5FF6B"
|
||||
$"94DD020006023C71E33A0C78BA15E43C7D214B02AA49855700E3EDFFFF9EC2FF"
|
||||
$"0200060239AB92381275BA365C3BEB2A4B2A844A9A5F00003CB0FF2C62D00200"
|
||||
$"06033AC7B03884E3B903663B534D48B61F4958AE00FCFFDC7FF8F0BCFFF4DC8A"
|
||||
$"020006023A7061B88A6E3B1AAE3CFAD946AC4F48C79100000000FFA9A06E130A"
|
||||
$"053E303E4452445232452C0A043E303E444C444C360A063E304C3652324630C3"
|
||||
$"BBB893452C0A044C44524452324C36020448224B22452242284225422B482E45"
|
||||
$"2E4B2E4E284E2B4E250605E2024A60505A5660506054604C584A0A0346305232"
|
||||
$"4A2E0A063A443A564A5E56535642463C0A043A443A564A5E4A4B0A043A444A4B"
|
||||
$"5642463C0A044A4B4A5E565356420604AE342D223822382C4632524247080233"
|
||||
$"33273B080231BCA9B6AFBEB40802BC10BCA92B40080237BDE8B821C0BF0802BC"
|
||||
$"1DBF66B8A0C1D708023BBFF3304808023B44BA12C42E100A010105000A00010B"
|
||||
$"1815FF01178400040A00010B18001501178500040A0A010B000A0B070E0D0C10"
|
||||
$"0F12111815FF01178100040A0001001001178400040A020101000A030102000A"
|
||||
$"040103000A060106000A0001041001178400040A050104000A00010710011784"
|
||||
$"00040A070108000A09010A000A08010900"
|
||||
};
|
||||
|
||||
#else // HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
resource large_icon array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02020008FFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B17110802FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF041B3F3F1B150800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF021B3F3F1B150A00FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFF003F00FFFFFFFFFF04151B1B17110800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF003FFD00FFFFFFFFFF02081515150A0800FFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF003FFDFDFD00FFFFFF00F9000A0A080A00FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFD00FFFF003FF97D000000007D0000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFF003FFDFDFDFDFDFD00FF00F93F3F7D7D7D7D7D7DF900FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDFDFD62FDFD00FF00F9F9F93F3FF9F9F9F97D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEFDFDFD62FDFDFDFA0000F9F9F9F9F93F3FF97D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEFEFDFD89FDFDFDFDFA0000F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"003FFEFEFEFDB0FD62FD62FDFAFA00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEFEB0FD89FD62FD62FAFA00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FF003FFEB0FDB0FDB0FD62FAFAFAFA00F9F90000F9F97D7D7D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEB0FDB0FDB0FDFAFA62FA000000606000007D7D7D00FFFFFFFFFFFF"
|
||||
$"FFFF003FFEFDFDFD89FD62FD62FAFAFA00606060606000007D00FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDB0FD89FD62FAFAFA0060606060606060600000FFFFFFFFFFFF"
|
||||
$"FFFFFF003FFDFDFDB0FD89FAFAFA00606060606060606060606000FFFFFFFFFF"
|
||||
$"FFFFFFFF003FFDB0FDB0FDFDFA006060606060606060606060D5000EFFFFFFFF"
|
||||
$"FFFFFFFF003FFDFDB0FDFDFD003F60606060606060606060D5D5000EFFFFFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFDFD00AC3F3F60606060606060D5D5D5000E0E0EFFFF"
|
||||
$"FFFFFFFFFF003FFDFDFDFDFD00ACACAC3F3F60606060D5D5D5D5000E0E0E0E0E"
|
||||
$"FFFFFFFFFFFF003FFDFDFD0000ACACACACAC3F3F60D5D5D5D5D5000E0E0E0E0E"
|
||||
$"FFFFFFFFFFFF003FFDFD000E00ACACACACACACACD5D5D5D5D5D5000E0E0E0EFF"
|
||||
$"FFFFFFFFFFFFFF00FD000E0E00ACACACACACACACD5D5D5D5D5D5000E0E0EFFFF"
|
||||
$"FFFFFFFFFFFFFFFF000E0E0E00ACACACACACACACD5D5D5D5D5000E0E0EFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF00ACACACACACACACD5D5D5D5000E0E0EFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFF0000ACACACACACD5D5D5000E0E0EFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000ACACACD5D5000E0E0EFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000ACD5000E0E0EFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000E0E0EFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource mini_icon array {
|
||||
$"FFFFFFFFFFFFFFFF020200FFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF04151E1500FFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF021D1E1C00FFFFFFFF"
|
||||
$"FFFFFFFF00FFFF00151B1600FFFFFFFF"
|
||||
$"FFFFFF003F0000FA0000000000FFFFFF"
|
||||
$"FFFF003FFD0000F9F9FAFAFAFA00FFFF"
|
||||
$"FF003FFEFDFD00F9F9F9F97D7D00FFFF"
|
||||
$"003F62FE89FD00F9F9F900007D00FFFF"
|
||||
$"FF003FB0FD89FA00F90060600000FFFF"
|
||||
$"FF003FFEB0FD620000606060606000FF"
|
||||
$"FFFF003FFD89FA003F3F606060D500FF"
|
||||
$"FFFF003FFDFDFA00ACAC3F3FD5D5000E"
|
||||
$"FFFFFF003FFD0000ACACACACD5D5000E"
|
||||
$"FFFFFF003F000E00ACACACACD5D5000E"
|
||||
$"FFFFFFFF000E0E0E0000ACACD5000E0E"
|
||||
$"FFFFFFFFFFFFFFFFFFFF0000000E0EFF"
|
||||
};
|
||||
|
||||
#endif // HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
SubDir HAIKU_TOP src add-ons tracker iconvader ;
|
||||
|
||||
SetSubDirSupportedPlatformsBeOSCompatible ;
|
||||
|
||||
if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
|
||||
UseHeaders [ FDirName $(HAIKU_TOP) src kits tracker ] : true ;
|
||||
UsePrivateHeaders tracker ;
|
||||
} else {
|
||||
# private, for testing...
|
||||
SubDirC++Flags -I/work/zeta/src/cebit/os/zeta/system/lib/tracker ;
|
||||
SubDirC++Flags -I/work/zeta/src/cebit/headers_p/tracker ;
|
||||
SubDirC++Flags -I/work/zeta/src/cebit/headers_p ;
|
||||
}
|
||||
|
||||
# TODO: does not seem to work:
|
||||
AddResources IconVader : IconVader.rdef ;
|
||||
|
||||
Addon IconVader :
|
||||
IconVader.cpp
|
||||
|
||||
: be tracker
|
||||
;
|
||||
Reference in New Issue
Block a user