static void myStringOpenListview( Class *cl, Object *obj, struct gpInput *msg ) { struct myStringClassData *data; struct Gadget *gad; data = INST_DATA( cl, obj ); gad = (struct Gadget *)obj; SetAttrs( data->WindowObject, WA_CustomScreen, msg->gpi_GInfo->gi_Window->WScreen, WA_Left, data->WinXPos, WA_Top, data->WinYPos, WA_Width, data->WinWidth, WA_Height, data->WinHeight, TAG_END ); // IDoMethod( data->WindowObject, WM_RETHINK ); data->Window = (struct Window *)IDoMethod( data->WindowObject, WM_OPEN ); if ( data->Window == NULL ) { goto bailout; } // GetAttr( WINDOW_SigMask, MainWindowObject, &MainWindowBits ); bailout: return; }
static void myStringHandleListview( Class *cl, Object *obj ) { struct myStringClassData *data; uint32 result; uint16 code; data = INST_DATA( cl, obj ); while(( result = IDoMethod( data->WindowObject, WM_HANDLEINPUT, &code )) != WMHI_LASTMSG ) { // switch( result & WMHI_CLASSMASK ) // { // case WMHI_CLOSEWINDOW: // { // running = FALSE; // break; // } // // default: // { // break; // } // } } }
void warn_user(const char *warning, const char *detail) { Object *req = NULL; char *utf8warning = ami_utf8_easy(messages_get(warning)); STRPTR bodytext = NULL; LOG(("%s %s", warning, detail)); bodytext = ASPrintf("\33b%s\33n\n%s", utf8warning != NULL ? utf8warning : warning, detail); req = NewObject(REQUESTER_GetClass(), NULL, REQ_Type, REQTYPE_INFO, REQ_TitleText, messages_get("NetSurf"), REQ_BodyText, bodytext, REQ_GadgetText, messages_get("OK"), #ifdef __amigaos4__ REQ_VarArgs, REQ_Image, (struct Image *)REQIMAGE_WARNING, /* REQ_CharSet, 106, */ #endif TAG_DONE); if (req) { LONG result = IDoMethod(req, RM_OPENREQ, NULL, NULL, scrn); DisposeObject(req); } if(bodytext) FreeVec(bodytext); if(utf8warning) free(utf8warning); }
static struct bitmap *amiga_dt_picture_cache_convert(struct content *c) { NSLOG(netsurf, INFO, "amiga_dt_picture_cache_convert"); union content_msg_data msg_data; UBYTE *bm_buffer; Object *dto; struct bitmap *bitmap; struct amiga_dt_picture_content *adt = (struct amiga_dt_picture_content *)c; if((dto = amiga_dt_picture_newdtobject(adt))) { bitmap = amiga_bitmap_create(c->width, c->height, BITMAP_NEW); if (!bitmap) { msg_data.error = messages_get("NoMemory"); content_broadcast(c, CONTENT_MSG_ERROR, &msg_data); return NULL; } bm_buffer = amiga_bitmap_get_buffer(bitmap); IDoMethod(dto, PDTM_READPIXELARRAY, bm_buffer, PBPAFMT_RGBA, amiga_bitmap_get_rowstride(bitmap), 0, 0, c->width, c->height); amiga_bitmap_set_opaque(bitmap, amiga_bitmap_test_opaque(bitmap)); DisposeDTObject(dto); adt->dto = NULL; } else return NULL; return bitmap; }
static void myStringCloseListview( Class *cl, Object *obj ) { struct myStringClassData *data; struct Node *node; data = INST_DATA( cl, obj ); if ( data->Window ) { IDoMethod( data->WindowObject, WM_CLOSE ); data->Window = NULL; } while(( node = RemHead( &data->ListviewHeader ))) { FreeListBrowserNode( node ); } }
static struct bitmap *amiga_dt_picture_cache_convert(struct content *c) { LOG(("amiga_dt_picture_cache_convert")); union content_msg_data msg_data; const uint8 *data; UBYTE *bm_buffer; ULONG size; Object *dto; struct bitmap *bitmap; unsigned int bm_flags = BITMAP_NEW; int bm_format = PBPAFMT_RGBA; /* This is only relevant for picture datatypes... */ data = (uint8 *)content__get_source_data(c, &size); if(dto = NewDTObject(NULL, DTA_SourceType, DTST_MEMORY, DTA_SourceAddress, data, DTA_SourceSize, size, DTA_GroupID, GID_PICTURE, PDTA_DestMode, PMODE_V43, TAG_DONE)) { bitmap = bitmap_create(c->width, c->height, bm_flags); if (!bitmap) { msg_data.error = messages_get("NoMemory"); content_broadcast(c, CONTENT_MSG_ERROR, msg_data); return NULL; } bm_buffer = bitmap_get_buffer(bitmap); IDoMethod(dto, PDTM_READPIXELARRAY, bm_buffer, bm_format, bitmap_get_rowstride(bitmap), 0, 0, c->width, c->height); DisposeDTObject(dto); } else return NULL; return bitmap; }
static struct bitmap *amiga_dt_picture_cache_convert(struct content *c) { LOG(("amiga_dt_picture_cache_convert")); union content_msg_data msg_data; UBYTE *bm_buffer; Object *dto; struct bitmap *bitmap; unsigned int bm_flags = BITMAP_NEW; #ifdef __amigaos4__ int bm_format = PBPAFMT_RGBA; #else int bm_format = PBPAFMT_ARGB; #endif struct amiga_dt_picture_content *adt = (struct amiga_dt_picture_content *)c; if(dto = amiga_dt_picture_newdtobject(adt)) { bitmap = bitmap_create(c->width, c->height, bm_flags); if (!bitmap) { msg_data.error = messages_get("NoMemory"); content_broadcast(c, CONTENT_MSG_ERROR, msg_data); return NULL; } bm_buffer = bitmap_get_buffer(bitmap); IDoMethod(dto, PDTM_READPIXELARRAY, bm_buffer, bm_format, bitmap_get_rowstride(bitmap), 0, 0, c->width, c->height); #ifndef __amigaos4__ ami_bitmap_argb_to_rgba(bitmap); #endif bitmap_set_opaque(bitmap, bitmap_test_opaque(bitmap)); DisposeDTObject(dto); adt->dto = NULL; } else return NULL; return bitmap; }
uint32 myStringClass_OM_Dispose( Class *cl, Object *obj, struct opSet *msg ) { struct myStringClassData *data; data = INST_DATA( cl, obj ); if ( data->Window ) { IDoMethod( data->WindowObject, WM_CLOSE ); data->Window = NULL; } if ( data->WindowObject ) { DisposeObject( data->WindowObject ); data->WindowObject = NULL; } return( IDoSuperMethodA( cl, obj, (APTR)msg )); }
void ami_help_process(void) { ULONG ret = IDoMethod(AmigaGuideObject, AGM_PROCESS, NULL); if(ret) ami_help_free(); }
void ami_help_open(ULONG node, struct Screen *screen) { if(AmigaGuideObject == NULL) ami_help_init(screen); SetAttrs(AmigaGuideObject, AMIGAGUIDE_ContextID, node, TAG_DONE); IDoMethod(AmigaGuideObject, AGM_OPEN, NULL); }
void gui_create_form_select_menu(struct gui_window *g, struct form_control *control) { struct Library *PopupMenuBase = NULL; struct PopupMenuIFace *IPopupMenu = NULL; struct Hook selectmenuhook; Object *selectmenuobj; Object *smenu = NULL; Object *currentmenu; Object *submenu = NULL; char *selectmenu_item[AMI_SELECTMENU_MAX]; char *more_label; struct form_option *opt = form_select_get_option(control, 0); int i = 0; int n = 0; if(ami_selectmenu_is_safe() == FALSE) return; if((PopupMenuBase = OpenLibrary("popupmenu.class", 0))) { IPopupMenu = (struct PopupMenuIFace *)GetInterface(PopupMenuBase, "main", 1, NULL); } if(IPopupMenu == NULL) return; ClearMem(selectmenu_item, AMI_SELECTMENU_MAX * 4); more_label = ami_utf8_easy(messages_get("More")); selectmenuhook.h_Entry = ami_popup_hook; selectmenuhook.h_SubEntry = NULL; selectmenuhook.h_Data = g; g->shared->control = control; selectmenuobj = PMMENU(form_control_get_name(control)), PMA_MenuHandler, &selectmenuhook, End; currentmenu = selectmenuobj; while(opt) { selectmenu_item[i] = ami_utf8_easy(opt->text); IDoMethod(currentmenu, PM_INSERT, NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)selectmenu_item[i], PMIA_ID, i, PMIA_CheckIt, TRUE, PMIA_Checked, opt->selected, TAG_DONE), ~0); opt = opt->next; i++; n++; if(n == AMI_SELECTMENU_PAGE_MAX) { if(submenu != NULL) { /* attach the previous submenu */ IDoMethod(smenu, PM_INSERT, NewObject(NULL, "popupmenuitem.class", PMIA_Title, more_label, PMIA_CheckIt, TRUE, PMIA_SubMenu, submenu, TAG_DONE), ~0); } submenu = NewObject(NULL, "popupmenu.class", TAG_DONE); smenu = currentmenu; currentmenu = submenu; n = 0; } if(i >= AMI_SELECTMENU_MAX) break; } if((submenu != NULL) && (n != 0)) { /* attach the previous submenu */ IDoMethod(smenu, PM_INSERT, NewObject(NULL, "popupmenuitem.class", PMIA_Title, more_label, PMIA_CheckIt, TRUE, PMIA_SubMenu, submenu, TAG_DONE), ~0); } ami_set_pointer(g->shared, GUI_POINTER_DEFAULT, false); // Clear the menu-style pointer IDoMethod(selectmenuobj, PM_OPEN, g->shared->win); /* PM_OPEN is blocking, so dispose menu immediately... */ if(selectmenuobj) DisposeObject(selectmenuobj); /* ...and get rid of popupmenu.class ASAP */ if(IPopupMenu) DropInterface((struct Interface *)IPopupMenu); if(PopupMenuBase) CloseLibrary(PopupMenuBase); /* Free the menu labels */ if(more_label) ami_utf8_free(more_label); for(i = 0; i < AMI_SELECTMENU_MAX; i++) { if(selectmenu_item[i] != NULL) { ami_utf8_free(selectmenu_item[i]); selectmenu_item[i] = NULL; } } }
void ami_arexx_execute(char *script) { IDoMethod(arexx_obj, AM_EXECUTE, script, NULL, NULL, NULL, NULL, NULL); }
void ami_help_open(ULONG node) { SetAttrs(AmigaGuideObject, AMIGAGUIDE_ContextID, node, TAG_DONE); IDoMethod(AmigaGuideObject, AGM_OPEN, NULL); }