Page 4 of 4
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 1:10 pm
by Antonio Linares
Manuel,
El warning que comentas se debe a un requerimiento que se ha implementado para el API del 10.6 (Snow Leopard 64) y que se denomina el "protocolo NSToolbarDelegate":
http://developer.apple.com/mac/library/documentation/cocoa/reference/NSToolbarDelegate_Protocol/Reference/Reference.html Dicho warning se soluciona facilmente con este cambio en toolbars.m:
lo que ocurre es que si ponemos esa claúsula entonces da error para el API del 10.5 (Leopard 32). Es preferible que tengamos un warning con el OSX 10.6 y que compile para ambos
![Smile :-)](./images/smilies/icon_smile.gif)
Con esas funciones que estas implementando podemos ir añadiendo nuevos métodos a la clase TImage
![Smile :-)](./images/smilies/icon_smile.gif)
Por cierto, son apreciaciones mias, ó Snow Leopard es más lento refrescando la pantalla ? He leido comentarios de otros usuarios de OSX que tambien indican una lentitud de pintado del Snow Leopard respecto al Leopard. Tal vez sea una cuestión solo de drivers y que aún no están afinados.
Tambien el iOS 4.0 (iPhone) esta dando muchos problemas por lentitud a un montón de usuarios. O tal vez sea que requiere un hardware mas potente como el que usa el iPhone 4:
http://www.applesfera.com/curiosidades/problemas-de-lentitud-con-el-ios-4-en-tu-iphone-3g-prueba-estoCuriosidades...
![Smile :-)](./images/smilies/icon_smile.gif)
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 2:08 pm
by mastintin
Antonio Linares wrote:Por cierto, son apreciaciones mias, ó Snow Leopard es más lento refrescando la pantalla ? He leido comentarios de otros usuarios de OSX que tambien indican una lentitud de pintado del Snow Leopard respecto al Leopard. Tal vez sea una cuestión solo de drivers y que aún no están afinados.
En mi macbook blanco ( core2duo -grafica intel - 2 Gg memoria ) no noto ninguna lentitud de pintado respecto a leopard ,la "actualización" a hecho que el portatil funcione mas rápido en general y le ha dado una segunda vida .
En mi Imac de última hornada ( nunca ha tenido leopard ) la cosa cambia . Es una verguenza . Los drivers de ATI tanto para win7 ( bootcamp) como para MAcosX son de traca , poco mas que básicos .
En bootcamp se arregla colocando los de la página de ATI ,que aunque no son optimos para el equipo van mil veces mejor que la porqueria que propone apple .
En Macosx , yo he experimentado problemas de refresco de pantalla con refrescos ocasionales lentos que dejan artefactos a lo largo de todo el monitor . Se sulucionaba temporalmente limpiando la PRAM del equipo pero volvía al poco tiempo . Ha mejorado algo con la última actualización , y segun creo los drivers para nvidia van "discretamente bien " pero lejos de los de windows , pero los de ATI son para denunciar .
Respecto al ipone con iOS4 ( yo no tengo iphone
![Smile :-)](./images/smilies/icon_smile.gif)
) por lo que sé ( tengo uno en estos momentos en la mano para poder hablar ), el problema radica en que la gente está haciendo una actualización "sucia" del sistema . Si se formatea el sistema y se instala el iOs 4 " de cero" y luego sincronizas los datos con el itunes , no notas diferencia alguna respecto al iphone 3.1.3 ( hablo siempre de un terminal 3GS ) .
Saludos.
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 3:21 pm
by mastintin
Otras cuantas functiones sin probar , ahora para la progressbar :
Code: Select all | Expand
}
HB_FUNC( PROGRESSSETMAX )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator setMaxValue: hb_parnl( 2 ) ];
}
HB_FUNC( PROGRESSSETMIN )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator setMinValue: hb_parnl( 2 ) ];
}
HB_FUNC( PROGRESSINCREMEN )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator incrementBy: hb_parnl( 2 ) ];
}
HB_FUNC( PROGRESSSETSPIN )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator setStyle: NSProgressIndicatorSpinningStyle ];
}
HB_FUNC( PROGRESSSETBAR )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator setStyle: NSProgressIndicatorBarStyle ];
}
Saludos.
----------------------- editado para ampliar -------------------------
Las funciones anteriores estan probadas y funcionando a ellas añado estas mas :
Code: Select all | Expand
HB_FUNC( PROGRESSSETINDETERMINATE )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator setIndeterminate : YES ];
}
HB_FUNC( PROGRESSSTARTANIME )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator startAnimation : progressIndicator ];
}
HB_FUNC( PROGRESSSTOPANIME )
{
NSProgressIndicator * progressIndicator = ( NSProgressIndicator * ) hb_parnl( 1 );
[ progressIndicator stopAnimation : progressIndicator ];
}
el testprog modificado para las pruebas :
Code: Select all | Expand
function Main()
local nPos := 0
local oWnd, oProg
DEFINE WINDOW oWnd TITLE "TEST PROGRESS" ;
FROM 20, 100 TO 420, 90 TEXTURED
oWnd:Center()
oProg = TProgress():New( 40, 10, 400, 30, oWnd, 0 )
//Progresssetspin(oProg:hWnd)
PROGRESSSETMAX(oProg:hWnd, 10)
PROGRESSSETMAX(oProg:hWnd, 5)
PROGRESSSETINDETERMINATE (oProg:hWnd)
PROGRESSSTARTANIME(oProg:hWnd)
@ 2, 1 BUTTON "Ok" OF oWnd ACTION PROGRESSSTopANIME(oProg:hWnd) //oProg:Update( nPos += 1 )
// ProgressRun( oProg, oWnd )
ACTIVATE WINDOW oWnd
return nil
Las funciones de la toolbar están tambien Funcionando bien . Pero no consiguo que se ejecute la "ACTION" de sus botones , ¿ Es cosa mia , o está sin implementar ?
Saludos.
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 7:10 pm
by mastintin
posible implementacion de la clase progress :
Code: Select all | Expand
#include "FiveMac.ch"
//----------------------------------------------------------------------------//
CLASS TProgress FROM TControl
DATA nMin, nMax, nPos, nStep AS NUMERIC
METHOD New( nTop, nLeft, nWidth, nHeight, oWnd, nProg )
METHOD Update( nProg ) INLINE ProgressUpdate( ::hWnd, nProg )
METHOD SetStep( nStepInc ) INLINE ( PROGRESSINCREMEN ( ::hWnd, nStepInc ) , ::nStep := nStepInc )
METHOD SetMin( nMin ) INLINE ( PROGRESSSETMIN ( ::hWnd, nMin ) , ::nMin := nMin )
METHOD SetMax( nMax ) INLINE ( PROGRESSSETMAX ( ::hWnd, nMax ) , ::nMax := nMax )
METHOD Setindeterminate() INLINE PROGRESSSETINDETERMINATE( ::hWnd )
METHOD SetSpinner(lspinner) INLINE iif ( lspinner , PROGRESSSETSPIN( ::hWnd ) , PROGRESSSETBAR( ::hWnd ) )
METHOD SetAnimate(lestado ) INLINE iif ( lestado , PROGRESSsTartAnime( ::hWnd ) , PROGRESSsTopAnime( ::hWnd ) )
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( nTop, nLeft, nWidth, nHeight, oWnd, nProg ) CLASS TProgress
DEFAULT nWidth := 100, nHeight := 100 ,nProg := 0
::oWnd = oWnd
::hWnd = ProgressCreate( nTop, nLeft, nWidth, nHeight, oWnd:hWnd, nProg )
::Update( nProg )
oWnd:AddControl( Self )
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 7:25 pm
by Antonio Linares
Manuel,
Las funciones de la toolbar están tambien Funcionando bien . Pero no consiguo que se ejecute la "ACTION" de sus botones , ¿ Es cosa mia , o está sin implementar ?
Estas usando el build más reciente de FiveMac ? Gracias a una modificación realizada por Dino Alessandri conseguimos que los botones de las barras de botones volviesen a ejecutar sus acciones.
Construye samples\osxpro.prg y pulsa el botón "New" de la barra de botones superior.
Re: Primera consulta sobre fiveMac
Posted: Fri Jul 02, 2010 8:00 pm
by mastintin
Correcto , funciona perfecto . Estaba usando la versión anterior por los cambios que tenía hechos para añadir funciones .
Saludos.
Re: Primera consulta sobre fiveMac
Posted: Sat Jul 03, 2010 8:54 am
by mastintin
En el ejemplo testslid.prg , parece que el evento bchange de los sliders no funciona .
Saludos.
Re: Primera consulta sobre fiveMac
Posted: Sat Jul 03, 2010 2:40 pm
by mastintin
Nueva funcion para borrar directorios , ficheros o enlaces hecha usando la clase filemanager de Macosx ( porpietaria del sistema ) :
Code: Select all | Expand
HB_FUNC( REMOVE )
{
NSString * string = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 1 ) : "" ] autorelease ];
NSFileManager *filemgr = [NSFileManager defaultManager];
hb_retl(( [filemgr removeItemAtPath: string error: NULL] == YES ) );
}
HB_FUNC( MACEXEC )
{
NSString * string = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 1 ) : "" ] autorelease ];
NSWorkspace *theProcess = [[[NSWorkspace alloc] init]autorelease ];
hb_retl([theProcess launchApplication:string]);
}
HB_FUNC( HIDEAPPS )
{
NSWorkspace *theProcess = [[[NSWorkspace alloc] init]autorelease ];
[theProcess hideOtherApplications];
}
HB_FUNC( SPOTLITE )
{
NSString * string = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 1 ) : "" ] autorelease ];
NSWorkspace *theProcess = [[[NSWorkspace alloc] init]autorelease ];
hb_retl([theProcess showSearchResultsForQueryString:string]);
}
HB_FUNC( HIDEAPPS )
{
NSWorkspace *theProcess = [[[NSWorkspace alloc] init]autorelease ];
[theProcess hideOtherApplications];
}
HB_FUNC( OPENFILE )
{
NSString * string = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 1 ) : "" ] autorelease ];
NSWorkspace *theProcess = [[[NSWorkspace alloc] init]autorelease ];
hb_retl([theProcess openFile:string]);
}
Re: Primera consulta sobre fiveMac
Posted: Sat Jul 03, 2010 5:24 pm
by mastintin
Funcion para mejora de los botones :
Code: Select all | Expand
HB_FUNC( BTNSETBEZEL )
{
NSButton * button = ( NSButton * ) hb_parnl( 1 );
[ button setBezelStyle :hb_parnl( 2 )];
}
usado el testdlg2.prg
Code: Select all | Expand
#include "FiveMac.ch"
#define NSRoundedBezelStyle = 1
#define NSRegularSquareBezelStyle = 2
#define NSThickSquareBezelStyle = 3
#define NSThickerSquareBezelStyle = 4
#define NSDisclosureBezelStyle = 5
#define NSShadowlessSquareBezelStyle = 6
#define NSCircularBezelStyle = 7
#define NSTexturedSquareBezelStyle = 8
#define NSHelpButtonBezelStyle = 9
#define NSSmallSquareBezelStyle = 10
#define NSTexturedRoundedBezelStyle = 11
#define NSRoundRectBezelStyle = 12
#define NSRecessedBezelStyle = 13
#define NSRoundedDisclosureBezelStyle = 14
function Main()
local oDlg, cFirst := Space( 20 ), cLast := Space( 20 )
local obtn
DEFINE DIALOG oDlg TITLE "Testing Gets" ;
FROM 270, 350 TO 389, 206
@ 139, 50 SAY "First:" OF oDlg SIZE 50, 17
@ 137, 108 GET cFirst OF oDlg SIZE 208, 22 ;
VALID If( Empty( cFirst ), ( MsgInfo( "Please type something" ), .f. ), .t. )
@ 98, 50 SAY "Last:" OF oDlg SIZE 50, 17
@ 96, 108 GET cLast OF oDlg SIZE 208, 22
@34, 83 BUTTON obtn PROMPT "OK" OF oDlg ACTION oDlg:End()
BTNSETBEZEL(obtn:hWnd,11)
@ 34, 218 BUTTON "Cancel" OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
return nil