static void toggle() { if(Selection == MenuSelectioniPhoneOS) { Selection = MenuSelectionConsole; } else if(Selection == MenuSelectionConsole) { Selection = MenuSelectioniPhoneOS; } drawSelectionBox(); }
void CutoutTool::drawImpl(QPainter* painter, MapWidget* widget) { // Draw selection renderables map()->drawSelection(painter, true, widget, NULL, false); // Draw cutout shape renderables drawSelectionOrPreviewObjects(painter, widget, true); // Box selection if (isDragging()) drawSelectionBox(painter, widget, click_pos_map, cur_pos_map); }
void EditPointTool::drawImpl(QPainter* painter, MapWidget* widget) { auto num_selected_objects = map()->selectedObjects().size(); if (num_selected_objects > 0) { drawSelectionOrPreviewObjects(painter, widget, text_editor != nullptr); if (!text_editor) { Object* object = *map()->selectedObjectsBegin(); if (num_selected_objects == 1 && object->getType() == Object::Text && !object->asText()->hasSingleAnchor()) { drawBoundingPath(painter, widget, object->asText()->controlPoints(), hover_state.testFlag(OverFrame) ? active_color : selection_color); } else if (selection_extent.isValid()) { auto active = hover_state.testFlag(OverFrame) && !hover_state.testFlag(OverObjectNode); drawBoundingBox(painter, widget, selection_extent, active ? active_color : selection_color); } if (num_selected_objects <= max_objects_for_handle_display) { for (const auto object: map()->selectedObjects()) { auto active = hover_state.testFlag(OverObjectNode) && hover_object == object; auto hover_point = active ? this->hover_point : no_point; pointHandles().draw(painter, widget, object, hover_point, true, PointHandles::NormalHandleState); } } } } // Text editor if (text_editor) { painter->save(); widget->applyMapTransform(painter); text_editor->draw(painter, widget); painter->restore(); } // Box selection if (isDragging() && box_selection) drawSelectionBox(painter, widget, click_pos_map, cur_pos_map); }
static void toggle(int forward) { if(forward) { if(Selection == MenuSelectioniPhoneOS) Selection = MenuSelectionConsole; else if(Selection == MenuSelectionConsole) Selection = MenuSelectionAndroidOS; else if(Selection == MenuSelectionAndroidOS) Selection = MenuSelectioniPhoneOS; } else { if(Selection == MenuSelectioniPhoneOS) Selection = MenuSelectionAndroidOS; else if(Selection == MenuSelectionAndroidOS) Selection = MenuSelectionConsole; else if(Selection == MenuSelectionConsole) Selection = MenuSelectioniPhoneOS; } drawSelectionBox(); }
int menu_setup() { FBWidth = currentWindow->framebuffer.width; FBHeight = currentWindow->framebuffer.height; imgiPhoneOS = framebuffer_load_image(dataiPhoneOSPNG, dataiPhoneOSPNG_size, &imgiPhoneOSWidth, &imgiPhoneOSHeight, TRUE); imgiPhoneOSSelected = framebuffer_load_image(dataiPhoneOSSelectedPNG, dataiPhoneOSSelectedPNG_size, &imgiPhoneOSWidth, &imgiPhoneOSHeight, TRUE); imgConsole = framebuffer_load_image(dataConsolePNG, dataConsolePNG_size, &imgConsoleWidth, &imgConsoleHeight, TRUE); imgConsoleSelected = framebuffer_load_image(dataConsoleSelectedPNG, dataConsoleSelectedPNG_size, &imgConsoleWidth, &imgConsoleHeight, TRUE); imgHeader = framebuffer_load_image(dataHeaderPNG, dataHeaderPNG_size, &imgHeaderWidth, &imgHeaderHeight, TRUE); bufferPrintf("menu: images loaded\r\n"); imgiPhoneOSX = (FBWidth - imgiPhoneOSWidth) / 2; imgiPhoneOSY = 106; imgConsoleX = (FBWidth - imgConsoleWidth) / 2; imgConsoleY = 246; imgHeaderX = (FBWidth - imgHeaderWidth) / 2; imgHeaderY = 30; framebuffer_draw_image(imgHeader, imgHeaderX, imgHeaderY, imgHeaderWidth, imgHeaderHeight); framebuffer_draw_rect_hgradient(0, 90, 0, 378, FBWidth, (FBHeight - 12) - 378); framebuffer_draw_rect_hgradient(0x22, 0x22, 0, FBHeight - 12, FBWidth, 12); framebuffer_setloc(0, 47); framebuffer_setcolors(COLOR_WHITE, 0x222222); framebuffer_print_force(OPENIBOOT_VERSION_STR); framebuffer_setcolors(COLOR_WHITE, COLOR_BLACK); framebuffer_setloc(0, 0); Selection = MenuSelectioniPhoneOS; drawSelectionBox(); pmu_set_iboot_stage(0); while(TRUE) { if(buttons_is_hold_pushed()) { toggle(); udelay(200000); } if(buttons_is_home_pushed()) { break; } udelay(10000); } if(Selection == MenuSelectioniPhoneOS) { Image* image = images_get(fourcc("ibox")); void* imageData; images_read(image, &imageData); chainload((uint32_t)imageData); } if(Selection == MenuSelectionConsole) { framebuffer_setdisplaytext(TRUE); framebuffer_clear(); } return 0; }
int menu_setup(int timeout) { FBWidth = currentWindow->framebuffer.width; FBHeight = currentWindow->framebuffer.height; imgiPhoneOS = framebuffer_load_image(dataiPhoneOSPNG, dataiPhoneOSPNG_size, &imgiPhoneOSWidth, &imgiPhoneOSHeight, TRUE); imgiPhoneOSSelected = framebuffer_load_image(dataiPhoneOSSelectedPNG, dataiPhoneOSSelectedPNG_size, &imgiPhoneOSWidth, &imgiPhoneOSHeight, TRUE); imgConsole = framebuffer_load_image(dataConsolePNG, dataConsolePNG_size, &imgConsoleWidth, &imgConsoleHeight, TRUE); imgConsoleSelected = framebuffer_load_image(dataConsoleSelectedPNG, dataConsoleSelectedPNG_size, &imgConsoleWidth, &imgConsoleHeight, TRUE); imgAndroidOS_unblended = framebuffer_load_image(dataAndroidOSPNG, dataAndroidOSPNG_size, &imgAndroidOSWidth, &imgAndroidOSHeight, TRUE); imgAndroidOSSelected_unblended = framebuffer_load_image(dataAndroidOSSelectedPNG, dataAndroidOSSelectedPNG_size, &imgAndroidOSWidth, &imgAndroidOSHeight, TRUE); imgHeader = framebuffer_load_image(dataHeaderPNG, dataHeaderPNG_size, &imgHeaderWidth, &imgHeaderHeight, TRUE); bufferPrintf("menu: images loaded\r\n"); imgiPhoneOSX = (FBWidth - imgiPhoneOSWidth) / 2; imgiPhoneOSY = 84; imgConsoleX = (FBWidth - imgConsoleWidth) / 2; imgConsoleY = 207; imgAndroidOSX = (FBWidth - imgAndroidOSWidth) / 2; imgAndroidOSY = 330; imgHeaderX = (FBWidth - imgHeaderWidth) / 2; imgHeaderY = 17; framebuffer_draw_image(imgHeader, imgHeaderX, imgHeaderY, imgHeaderWidth, imgHeaderHeight); framebuffer_draw_rect_hgradient(0, 42, 0, 360, FBWidth, (FBHeight - 12) - 360); framebuffer_draw_rect_hgradient(0x22, 0x22, 0, FBHeight - 12, FBWidth, 12); framebuffer_setloc(0, 47); framebuffer_setcolors(COLOR_WHITE, 0x222222); framebuffer_print_force(OPENIBOOT_VERSION_STR); framebuffer_setcolors(COLOR_WHITE, COLOR_BLACK); framebuffer_setloc(0, 0); imgAndroidOS = malloc(imgAndroidOSWidth * imgAndroidOSHeight * sizeof(uint32_t)); imgAndroidOSSelected = malloc(imgAndroidOSWidth * imgAndroidOSHeight * sizeof(uint32_t)); framebuffer_capture_image(imgAndroidOS, imgAndroidOSX, imgAndroidOSY, imgAndroidOSWidth, imgAndroidOSHeight); framebuffer_capture_image(imgAndroidOSSelected, imgAndroidOSX, imgAndroidOSY, imgAndroidOSWidth, imgAndroidOSHeight); framebuffer_blend_image(imgAndroidOS, imgAndroidOSWidth, imgAndroidOSHeight, imgAndroidOS_unblended, imgAndroidOSWidth, imgAndroidOSHeight, 0, 0); framebuffer_blend_image(imgAndroidOSSelected, imgAndroidOSWidth, imgAndroidOSHeight, imgAndroidOSSelected_unblended, imgAndroidOSWidth, imgAndroidOSHeight, 0, 0); Selection = MenuSelectioniPhoneOS; OtherFramebuffer = CurFramebuffer; CurFramebuffer = (volatile uint32_t*) NextFramebuffer; drawSelectionBox(); pmu_set_iboot_stage(0); memcpy((void*)NextFramebuffer, (void*) CurFramebuffer, NextFramebuffer - (uint32_t)CurFramebuffer); uint64_t startTime = timer_get_system_microtime(); while(TRUE) { if(buttons_is_pushed(BUTTONS_HOLD)) { toggle(TRUE); startTime = timer_get_system_microtime(); udelay(200000); } #ifndef CONFIG_IPOD if(!buttons_is_pushed(BUTTONS_VOLUP)) { toggle(FALSE); startTime = timer_get_system_microtime(); udelay(200000); } if(!buttons_is_pushed(BUTTONS_VOLDOWN)) { toggle(TRUE); startTime = timer_get_system_microtime(); udelay(200000); } #endif if(buttons_is_pushed(BUTTONS_HOME)) { break; } if(timeout > 0 && has_elapsed(startTime, (uint64_t)timeout * 1000)) { bufferPrintf("menu: timed out, selecting current item\r\n"); break; } udelay(10000); } if(Selection == MenuSelectioniPhoneOS) { Image* image = images_get(fourcc("ibox")); if(image == NULL) image = images_get(fourcc("ibot")); void* imageData; images_read(image, &imageData); chainload((uint32_t)imageData); } if(Selection == MenuSelectionConsole) { // Reset framebuffer back to original if necessary if((uint32_t) CurFramebuffer == NextFramebuffer) { CurFramebuffer = OtherFramebuffer; currentWindow->framebuffer.buffer = CurFramebuffer; lcd_window_address(2, (uint32_t) CurFramebuffer); } framebuffer_setdisplaytext(TRUE); framebuffer_clear(); } if(Selection == MenuSelectionAndroidOS) { // Reset framebuffer back to original if necessary if((uint32_t) CurFramebuffer == NextFramebuffer) { CurFramebuffer = OtherFramebuffer; currentWindow->framebuffer.buffer = CurFramebuffer; lcd_window_address(2, (uint32_t) CurFramebuffer); } framebuffer_setdisplaytext(TRUE); framebuffer_clear(); #ifndef NO_HFS radio_setup(); nand_setup(); fs_setup(); if(globalFtlHasBeenRestored) /* if ftl has been restored, sync it, so kernel doesn't have to do a ftl_restore again */ { if(ftl_sync()) { bufferPrintf("ftl synced successfully"); } else { bufferPrintf("error syncing ftl"); } } pmu_set_iboot_stage(0); startScripting("linux"); //start script mode if there is a script file boot_linux_from_files(); #endif } return 0; }