Beispiel #1
0
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;
}
Beispiel #2
0
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;
//            }
//        }
    }
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}
Beispiel #5
0
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 );
	}
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}
Beispiel #8
0
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 ));
}
Beispiel #9
0
void ami_help_process(void)
{
	ULONG ret = IDoMethod(AmigaGuideObject, AGM_PROCESS, NULL);
	if(ret) ami_help_free();
}
Beispiel #10
0
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);
}
Beispiel #11
0
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;
		}
	}
}
Beispiel #12
0
void ami_arexx_execute(char *script)
{
	IDoMethod(arexx_obj, AM_EXECUTE, script, NULL, NULL, NULL, NULL, NULL);
}
Beispiel #13
0
void ami_help_open(ULONG node)
{
	SetAttrs(AmigaGuideObject, AMIGAGUIDE_ContextID, node, TAG_DONE);
	IDoMethod(AmigaGuideObject, AGM_OPEN, NULL);
}