diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
commit | 8b23a6c7e1aee255004dd19098d4c2462b61b849 (patch) | |
tree | 7a4d682ba51f0ff0364c5ca2509f515bdaf96de9 /android/skin/file.h | |
parent | f721e3ac031f892af46f255a47d7f54a91317b30 (diff) | |
download | external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.zip external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.gz external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'android/skin/file.h')
-rw-r--r-- | android/skin/file.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/android/skin/file.h b/android/skin/file.h new file mode 100644 index 0000000..8f95368 --- /dev/null +++ b/android/skin/file.h @@ -0,0 +1,132 @@ +/* Copyright (C) 2007-2008 The Android Open Source Project +** +** This software is licensed under the terms of the GNU General Public +** License version 2, as published by the Free Software Foundation, and +** may be copied, distributed, and modified under those terms. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +*/ +#ifndef _ANDROID_SKIN_FILE_H +#define _ANDROID_SKIN_FILE_H + +#include "android/skin/image.h" +#include "android/config.h" +#include "framebuffer.h" + +/** Layout + **/ + +typedef struct SkinBackground { + SkinImage* image; + SkinRect rect; + char valid; +} SkinBackground; + +typedef struct SkinDisplay { + SkinRect rect; /* display rectangle */ + SkinRotation rotation; /* framebuffer rotation */ + char valid; + QFrameBuffer qfbuff[1]; +} SkinDisplay; + +typedef struct SkinButton { + struct SkinButton* next; + const char* name; + SkinImage* image; + SkinRect rect; + unsigned keycode; +} SkinButton; + +typedef struct SkinPart { + struct SkinPart* next; + const char* name; + SkinBackground background[1]; + SkinDisplay display[1]; + SkinButton* buttons; + SkinRect rect; /* bounding box of all parts */ +} SkinPart; + +#define SKIN_PART_LOOP_BUTTONS(part,button) \ + do { \ + SkinButton* __button = (part)->buttons; \ + while (__button != NULL) { \ + SkinButton* __button_next = __button->next; \ + SkinButton* button = __button; + +#define SKIN_PART_LOOP_END \ + __button = __button_next; \ + } \ + } while (0); + +typedef struct SkinLocation { + SkinPart* part; + SkinPos anchor; + SkinRotation rotation; + struct SkinLocation* next; +} SkinLocation; + +typedef struct SkinLayout { + struct SkinLayout* next; + const char* name; + unsigned color; + int event_type; + int event_code; + int event_value; + SkinSize size; + SkinLocation* locations; +} SkinLayout; + +#define SKIN_LAYOUT_LOOP_LOCS(layout,loc) \ + do { \ + SkinLocation* __loc = (layout)->locations; \ + while (__loc != NULL) { \ + SkinLocation* __loc_next = (__loc)->next; \ + SkinLocation* loc = __loc; + +#define SKIN_LAYOUT_LOOP_END \ + __loc = __loc_next; \ + } \ + } while (0); + +extern SkinDisplay* skin_layout_get_display( SkinLayout* layout ); + +extern SkinRotation skin_layout_get_dpad_rotation( SkinLayout* layout ); + +typedef struct SkinFile { + SkinPart* parts; + SkinLayout* layouts; + int num_parts; + int num_layouts; +} SkinFile; + +#define SKIN_FILE_LOOP_LAYOUTS(file,layout) \ + do { \ + SkinLayout* __layout = (file)->layouts; \ + while (__layout != NULL) { \ + SkinLayout* __layout_next = __layout->next; \ + SkinLayout* layout = __layout; + +#define SKIN_FILE_LOOP_END_LAYOUTS \ + __layout = __layout_next; \ + } \ + } while (0); + +#define SKIN_FILE_LOOP_PARTS(file,part) \ + do { \ + SkinPart* __part = (file)->parts; \ + while (__part != NULL) { \ + SkinPart* __part_next = __part->next; \ + SkinPart* part = __part; + +#define SKIN_FILE_LOOP_END_PARTS \ + __part = __part_next; \ + } \ + } while (0); + +extern SkinFile* skin_file_create_from_aconfig( AConfig* aconfig, const char* basepath ); +extern void skin_file_free( SkinFile* file ); + +#endif /* _ANDROID_SKIN_FILE_H */ |