2012-04-27 7 views
5

Sto facendo un progetto sulla migrazione di un programma legacy della GUI da Motif a Gtk. Il codice sorgente è piuttosto lungo (circa 80k linee). Ora ho due piani:Ho bisogno di qualche consiglio sulla migrazione da Motif a Gtk

  1. Basta trovare le relazioni corrispondenti tra le funzioni Motif e Gtk. Quindi scrivi alcuni script per eseguire questa trasformazione automaticamente. Naturalmente, questo non potrebbe essere automaticamente automatico al 100%, sarà necessario un lavoro manuale.
  2. Torna all'architettura del programma GUI dal codice sorgente. Costruisci una struttura ad albero e poi usa Gtk per ricostruire il programma secondo la struttura.

Per favore, dammi qualche consiglio su questi due piani. Tutte le idee o pensieri sono anche accolti calorosamente.

+1

Ottima domanda, ma non mi sorprende che non abbia ricevuto risposte o commenti finora. Tranne i veri veterani, per molti di noi Motif è una storia antica ... per fortuna. Penso che avrai bisogno di qualcuno che lo conosca bene (e che conosca GTK) per essere in grado di consigliare ciò che funzionerà meglio e quali problemi incontrerai. Sto aggiungendo un tag per 'motif' ad esso, ma se non ricevi subito nessuna risposta potresti vedere se qualcuno sarebbe così gentile da mettere una taglia su di esso per te (vedo che non hai nessun rappresentante farlo da soli). –

+0

Grazie per il tuo aiuto e i tuoi consigli @R .. Il motivo del tag ha solo 5 follower :(E il codice legacy su cui sto lavorando è davvero molto vecchio.Si dice che alcuni programmatori che hanno scritto le prime versioni di quel codice si siano già ritirati ... – fabregaszy

+0

Anche se sono solo 5, quelli potrebbero essere esattamente le 5 persone da ascoltare. :-) –

risposta

0

non so motivo, ma è una soluzione 1 suona come una pessima idea per me. I toolkit hanno alcune caratteristiche specifiche e semplicemente non sono intercambiabili. Altrimenti avresti facilmente diversi frontend per il software, e non è il caso, in quanto richiede una buona quantità di lavoro.

Non capisco veramente la soluzione 2, in particolare la struttura ad albero. È un diagramma per vedere quali schermi appaiono quando? Sarebbe una buona idea Catturare schermate degli schermi attuali, unendoli in una grande immagine con una freccia che spiega quale azione conduce a quale schermo ti aiuterà.

Quindi, è necessario verificare se la logica della GUI è chiaramente separata nel programma, se è tutto collegato. Se è legato, avrai un sacco di lavoro, che molto probabilmente sarà una completa reimplementazione del tuo programma in GTK!

Ma non dimenticare che è possibile utilizzare Glade per progettare la GUI GTK, che consente di risparmiare un buon numero di linee di codice per la creazione di GUI.

Poiché la tua app è 80k LOC, penso che questo sia un grande progetto, che potrebbe richiedere alcuni mesi. Dovrai creare lo scheletro dell'app GTK, quindi copiare/incollare la logica interna del programma. Inizia a reimplementare la schermata per schermo, in modo che tu possa vedere un miglioramento reale. Se provi a fare tutto in una volta, finirai per scoraggiarti dal non vedere progressi.

Tutto questo è un approccio personale, è proprio come lo farei. Altre persone potrebbero trovare piani di migrazione migliori.

È possibile trovare ulteriori consigli effettuando una ricerca su gtk-app-devel-list mailing list (domande simili sono già state poste, come this one).

0

posso ricordare dai miei vecchi tempi all'università ho avuto un incarico di fare una conversione (automatica) da un programma MOTIF per X framework xview. Mi sono perso in quel compito e ho fatto una ricostruzione completa.

Buona fortuna a voi

Problemi correlati