Primera consulta sobre fiveMac

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Primera consulta sobre fiveMac

Post 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/ ... rence.html

Dicho warning se soluciona facilmente con este cambio en toolbars.m:

Code: Select all

@interface ToolBar : NSToolbar <NSToolbarDelegate>
 
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 :-)

Con esas funciones que estas implementando podemos ir añadiendo nuevos métodos a la clase TImage :-)

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/ ... rueba-esto
Curiosidades... :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post 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 :-) ) 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.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

Otras cuantas functiones sin probar , ahora para la progressbar :

Code: Select all

}

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


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

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.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

posible implementacion de la clase progress :

Code: Select all

#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 )
   
 
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Primera consulta sobre fiveMac

Post 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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

Correcto , funciona perfecto . Estaba usando la versión anterior por _ que tenía hechos para añadir funciones .
Saludos.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

En el ejemplo testslid.prg , parece que el evento bchange de los sliders no funciona .
Saludos.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

Nueva funcion para borrar directorios , ficheros o enlaces hecha usando la clase filemanager de Macosx ( porpietaria del sistema ) :

Code: Select all

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]);    
} 
 
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Primera consulta sobre fiveMac

Post by mastintin »

Funcion para mejora de los botones :

Code: Select all

HB_FUNC( BTNSETBEZEL )
{
    NSButton * button = ( NSButton * ) hb_parnl( 1 );
    [ button setBezelStyle :hb_parnl( 2 )];
} 
 
usado el testdlg2.prg

Code: Select all

#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   
 
Post Reply