Changed to use shared translator code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6863 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
e490b53c45
commit
862e3ac371
@ -1,6 +1,18 @@
|
|||||||
SubDir OBOS_TOP src add-ons translators stxttranslator ;
|
SubDir OBOS_TOP src add-ons translators stxttranslator ;
|
||||||
|
|
||||||
Translator STXTTranslator : STXTMain.cpp STXTTranslator.cpp STXTView.cpp STXTWindow.cpp ;
|
# Include BaseTranslator code from shared directory
|
||||||
|
SEARCH_SOURCE += [ FDirName $(OBOS_TOP) src add-ons translators shared ] ;
|
||||||
|
|
||||||
|
Translator STXTTranslator :
|
||||||
|
# shared classes
|
||||||
|
BaseTranslator.cpp
|
||||||
|
TranslatorSettings.cpp
|
||||||
|
TranslatorWindow.cpp
|
||||||
|
|
||||||
|
# STXTTranslator classes
|
||||||
|
STXTMain.cpp
|
||||||
|
STXTTranslator.cpp
|
||||||
|
STXTView.cpp ;
|
||||||
|
|
||||||
LinkSharedOSLibs STXTTranslator : be translation ;
|
LinkSharedOSLibs STXTTranslator : be translation ;
|
||||||
|
|
||||||
|
@ -33,11 +33,8 @@
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#include <Application.h>
|
#include <Application.h>
|
||||||
#include <Screen.h>
|
|
||||||
#include <Alert.h>
|
|
||||||
#include "STXTTranslator.h"
|
#include "STXTTranslator.h"
|
||||||
#include "STXTWindow.h"
|
#include "TranslatorWindow.h"
|
||||||
#include "STXTView.h"
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
// main
|
// main
|
||||||
@ -56,48 +53,12 @@ int
|
|||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
BApplication app("application/x-vnd.obos-stxt-translator");
|
BApplication app("application/x-vnd.obos-stxt-translator");
|
||||||
STXTTranslator *ptranslator = new STXTTranslator;
|
status_t result;
|
||||||
BView *view = NULL;
|
result = LaunchTranslatorWindow(new STXTTranslator,
|
||||||
BRect rect(0, 0, 225, 175);
|
"STXT Settings", BRect(0, 0, 225, 175));
|
||||||
if (ptranslator->MakeConfigurationView(NULL, &view, &rect)) {
|
if (result == B_OK) {
|
||||||
BAlert *err = new BAlert("Error",
|
app.Run();
|
||||||
"Unable to create the STXTTranslator view.", "OK");
|
return 0;
|
||||||
err->Go();
|
} else
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
// release the translator even though I never really used it anyway
|
|
||||||
ptranslator->Release();
|
|
||||||
ptranslator = NULL;
|
|
||||||
|
|
||||||
STXTWindow *wnd = new STXTWindow(rect);
|
|
||||||
view->ResizeTo(rect.Width(), rect.Height());
|
|
||||||
wnd->AddChild(view);
|
|
||||||
BPoint wndpt = B_ORIGIN;
|
|
||||||
{
|
|
||||||
BScreen scrn;
|
|
||||||
BRect frame = scrn.Frame();
|
|
||||||
frame.InsetBy(10, 23);
|
|
||||||
// if the point is outside of the screen frame,
|
|
||||||
// use the mouse location to find a better point
|
|
||||||
if (!frame.Contains(wndpt)) {
|
|
||||||
uint32 dummy;
|
|
||||||
view->GetMouse(&wndpt, &dummy, false);
|
|
||||||
wndpt.x -= rect.Width() / 2;
|
|
||||||
wndpt.y -= rect.Height() / 2;
|
|
||||||
// clamp location to screen
|
|
||||||
if (wndpt.x < frame.left)
|
|
||||||
wndpt.x = frame.left;
|
|
||||||
if (wndpt.y < frame.top)
|
|
||||||
wndpt.y = frame.top;
|
|
||||||
if (wndpt.x > frame.right)
|
|
||||||
wndpt.x = frame.right;
|
|
||||||
if (wndpt.y > frame.bottom)
|
|
||||||
wndpt.y = frame.bottom;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
wnd->MoveTo(wndpt);
|
|
||||||
wnd->Show();
|
|
||||||
app.Run();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
@ -34,9 +34,6 @@
|
|||||||
#include "STXTTranslator.h"
|
#include "STXTTranslator.h"
|
||||||
#include "STXTView.h"
|
#include "STXTView.h"
|
||||||
|
|
||||||
#define min(x,y) ((x < y) ? x : y)
|
|
||||||
#define max(x,y) ((x > y) ? x : y)
|
|
||||||
|
|
||||||
#define READ_BUFFER_SIZE 2048
|
#define READ_BUFFER_SIZE 2048
|
||||||
#define DATA_BUFFER_SIZE 64
|
#define DATA_BUFFER_SIZE 64
|
||||||
|
|
||||||
@ -80,6 +77,12 @@ translation_format gOutputFormats[] = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Default settings for the Translator
|
||||||
|
TranSetting gDefaultSettings[] = {
|
||||||
|
{B_TRANSLATOR_EXT_HEADER_ONLY, TRAN_SETTING_BOOL, false},
|
||||||
|
{B_TRANSLATOR_EXT_DATA_ONLY, TRAN_SETTING_BOOL, false}
|
||||||
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
// make_nth_translator
|
// make_nth_translator
|
||||||
//
|
//
|
||||||
@ -126,13 +129,14 @@ make_nth_translator(int32 n, image_id you, uint32 flags, ...)
|
|||||||
// Returns:
|
// Returns:
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
STXTTranslator::STXTTranslator()
|
STXTTranslator::STXTTranslator()
|
||||||
: BTranslator()
|
: BaseTranslator("StyledEdit Files", "StyledEdit files translator",
|
||||||
|
STXT_TRANSLATOR_VERSION,
|
||||||
|
gInputFormats, sizeof(gInputFormats) / sizeof(translation_format),
|
||||||
|
gOutputFormats, sizeof(gOutputFormats) / sizeof(translation_format),
|
||||||
|
"STXTTranslator_Settings",
|
||||||
|
gDefaultSettings, sizeof(gDefaultSettings) / sizeof(TranSetting),
|
||||||
|
B_TRANSLATOR_TEXT, B_STYLED_TEXT_FORMAT)
|
||||||
{
|
{
|
||||||
strcpy(fName, "StyledEdit Files");
|
|
||||||
sprintf(fInfo, "StyledEdit file translator v%d.%d.%d %s",
|
|
||||||
static_cast<int>(STXT_TRANSLATOR_VERSION >> 8),
|
|
||||||
static_cast<int>((STXT_TRANSLATOR_VERSION >> 4) & 0xf),
|
|
||||||
static_cast<int>(STXT_TRANSLATOR_VERSION & 0xf), __DATE__);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
@ -152,119 +156,6 @@ STXTTranslator::~STXTTranslator()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
// TranslatorName
|
|
||||||
//
|
|
||||||
// Returns the short name of the translator.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters:
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns: a const char * to the short name of the translator
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
const char *
|
|
||||||
STXTTranslator::TranslatorName() const
|
|
||||||
{
|
|
||||||
return fName;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
// TranslatorInfo
|
|
||||||
//
|
|
||||||
// Returns a more verbose name for the translator than the one
|
|
||||||
// TranslatorName() returns. This usually includes version info.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters:
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns: a const char * to the verbose name of the translator
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
const char *
|
|
||||||
STXTTranslator::TranslatorInfo() const
|
|
||||||
{
|
|
||||||
return fInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
// TranslatorVersion
|
|
||||||
//
|
|
||||||
// Returns the integer representation of the current version of
|
|
||||||
// this translator.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters:
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns:
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
int32
|
|
||||||
STXTTranslator::TranslatorVersion() const
|
|
||||||
{
|
|
||||||
return STXT_TRANSLATOR_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
// InputFormats
|
|
||||||
//
|
|
||||||
// Returns a list of input formats supported by this translator.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters: out_count, The number of input formats
|
|
||||||
// support is returned here.
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns: the list of input formats and the number of input
|
|
||||||
// formats through the out_count parameter, if out_count is NULL,
|
|
||||||
// NULL is returned
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
const translation_format *
|
|
||||||
STXTTranslator::InputFormats(int32 *out_count) const
|
|
||||||
{
|
|
||||||
if (out_count) {
|
|
||||||
*out_count = sizeof(gInputFormats) /
|
|
||||||
sizeof(translation_format);
|
|
||||||
return gInputFormats;
|
|
||||||
} else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
// OutputFormats
|
|
||||||
//
|
|
||||||
// Returns a list of output formats supported by this translator.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters: out_count, The number of output formats
|
|
||||||
// support is returned here.
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns: the list of output formats and the number of output
|
|
||||||
// formats through the out_count parameter, if out_count is NULL,
|
|
||||||
// NULL is returned
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
const translation_format *
|
|
||||||
STXTTranslator::OutputFormats(int32 *out_count) const
|
|
||||||
{
|
|
||||||
if (out_count) {
|
|
||||||
*out_count = sizeof(gOutputFormats) /
|
|
||||||
sizeof(translation_format);
|
|
||||||
return gOutputFormats;
|
|
||||||
} else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
// identify_stxt_header
|
// identify_stxt_header
|
||||||
//
|
//
|
||||||
@ -930,43 +821,10 @@ STXTTranslator::Translate(BPositionIO *inSource,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
BView *
|
||||||
// MakeConfigurationView
|
STXTTranslator::NewConfigView(TranslatorSettings *settings)
|
||||||
//
|
|
||||||
// Makes a BView object for configuring / displaying info about
|
|
||||||
// this translator.
|
|
||||||
//
|
|
||||||
// Preconditions:
|
|
||||||
//
|
|
||||||
// Parameters: ioExtension, configuration options for the
|
|
||||||
// translator
|
|
||||||
//
|
|
||||||
// outView, the view to configure the
|
|
||||||
// translator is stored here
|
|
||||||
//
|
|
||||||
// outExtent, the bounds of the view are
|
|
||||||
// stored here
|
|
||||||
//
|
|
||||||
// Postconditions:
|
|
||||||
//
|
|
||||||
// Returns: B_BAD_VALUE if ioExtension or outView are NULL,
|
|
||||||
// B_NO_MEMORY if a view can't be allocated,
|
|
||||||
// B_OK if all goes well
|
|
||||||
// ---------------------------------------------------------------
|
|
||||||
status_t
|
|
||||||
STXTTranslator::MakeConfigurationView(BMessage *ioExtension, BView **outView,
|
|
||||||
BRect *outExtent)
|
|
||||||
{
|
{
|
||||||
if (!outView || !outExtent)
|
return new STXTView(BRect(0, 0, 225, 175), "STXTTranslator Settings",
|
||||||
return B_BAD_VALUE;
|
B_FOLLOW_ALL, B_WILL_DRAW, settings);
|
||||||
|
|
||||||
STXTView *view = new STXTView(BRect(0, 0, 225, 175),
|
|
||||||
"STXTTranslator Settings", B_FOLLOW_ALL, B_WILL_DRAW);
|
|
||||||
if (!view)
|
|
||||||
return B_NO_MEMORY;
|
|
||||||
|
|
||||||
*outView = view;
|
|
||||||
*outExtent = view->Bounds();
|
|
||||||
|
|
||||||
return B_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,8 +41,9 @@
|
|||||||
#include <File.h>
|
#include <File.h>
|
||||||
#include <ByteOrder.h>
|
#include <ByteOrder.h>
|
||||||
#include <fs_attr.h>
|
#include <fs_attr.h>
|
||||||
|
#include "BaseTranslator.h"
|
||||||
|
|
||||||
#define STXT_TRANSLATOR_VERSION 0x100
|
#define STXT_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VER(1,0,0)
|
||||||
#define STXT_IN_QUALITY 0.5
|
#define STXT_IN_QUALITY 0.5
|
||||||
#define STXT_IN_CAPABILITY 0.5
|
#define STXT_IN_CAPABILITY 0.5
|
||||||
#define STXT_OUT_QUALITY 0.5
|
#define STXT_OUT_QUALITY 0.5
|
||||||
@ -53,29 +54,10 @@
|
|||||||
#define TEXT_OUT_QUALITY 0.4
|
#define TEXT_OUT_QUALITY 0.4
|
||||||
#define TEXT_OUT_CAPABILITY 0.6
|
#define TEXT_OUT_CAPABILITY 0.6
|
||||||
|
|
||||||
class STXTTranslator : public BTranslator {
|
class STXTTranslator : public BaseTranslator {
|
||||||
public:
|
public:
|
||||||
STXTTranslator();
|
STXTTranslator();
|
||||||
|
|
||||||
virtual const char *TranslatorName() const;
|
|
||||||
// returns the short name of the translator
|
|
||||||
|
|
||||||
virtual const char *TranslatorInfo() const;
|
|
||||||
// returns a verbose name/description for the translator
|
|
||||||
|
|
||||||
virtual int32 TranslatorVersion() const;
|
|
||||||
// returns the version of the translator
|
|
||||||
|
|
||||||
virtual const translation_format *InputFormats(int32 *out_count)
|
|
||||||
const;
|
|
||||||
// returns the input formats and the count of input formats
|
|
||||||
// that this translator supports
|
|
||||||
|
|
||||||
virtual const translation_format *OutputFormats(int32 *out_count)
|
|
||||||
const;
|
|
||||||
// returns the output formats and the count of output formats
|
|
||||||
// that this translator supports
|
|
||||||
|
|
||||||
virtual status_t Identify(BPositionIO *inSource,
|
virtual status_t Identify(BPositionIO *inSource,
|
||||||
const translation_format *inFormat, BMessage *ioExtension,
|
const translation_format *inFormat, BMessage *ioExtension,
|
||||||
translator_info *outInfo, uint32 outType);
|
translator_info *outInfo, uint32 outType);
|
||||||
@ -89,10 +71,7 @@ public:
|
|||||||
// it translates the data in inSource to outDestination
|
// it translates the data in inSource to outDestination
|
||||||
// using the format outType
|
// using the format outType
|
||||||
|
|
||||||
virtual status_t MakeConfigurationView(BMessage *ioExtension,
|
virtual BView *NewConfigView(TranslatorSettings *settings);
|
||||||
BView **outView, BRect *outExtent);
|
|
||||||
// creates and returns the view for displaying information
|
|
||||||
// about this translator
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~STXTTranslator();
|
virtual ~STXTTranslator();
|
||||||
@ -101,8 +80,6 @@ protected:
|
|||||||
// the user
|
// the user
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char fName[30];
|
|
||||||
char fInfo[100];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // #ifndef STXT_TRANSLATOR_H
|
#endif // #ifndef STXT_TRANSLATOR_H
|
||||||
|
@ -47,10 +47,12 @@
|
|||||||
// Returns:
|
// Returns:
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
STXTView::STXTView(const BRect &frame, const char *name,
|
STXTView::STXTView(const BRect &frame, const char *name,
|
||||||
uint32 resize, uint32 flags)
|
uint32 resize, uint32 flags, TranslatorSettings *settings)
|
||||||
: BView(frame, name, resize, flags)
|
: BView(frame, name, resize, flags)
|
||||||
{
|
{
|
||||||
SetViewColor(220,220,220,0);
|
fSettings = settings;
|
||||||
|
|
||||||
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
@ -68,6 +70,7 @@ STXTView::STXTView(const BRect &frame, const char *name,
|
|||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
STXTView::~STXTView()
|
STXTView::~STXTView()
|
||||||
{
|
{
|
||||||
|
fSettings->Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------
|
// ---------------------------------------------------------------
|
||||||
@ -104,9 +107,10 @@ STXTView::Draw(BRect area)
|
|||||||
|
|
||||||
char detail[100];
|
char detail[100];
|
||||||
sprintf(detail, "Version %d.%d.%d %s",
|
sprintf(detail, "Version %d.%d.%d %s",
|
||||||
static_cast<int>(STXT_TRANSLATOR_VERSION >> 8),
|
static_cast<int>(B_TRANSLATION_MAJOR_VER(STXT_TRANSLATOR_VERSION)),
|
||||||
static_cast<int>((STXT_TRANSLATOR_VERSION >> 4) & 0xf),
|
static_cast<int>(B_TRANSLATION_MINOR_VER(STXT_TRANSLATOR_VERSION)),
|
||||||
static_cast<int>(STXT_TRANSLATOR_VERSION & 0xf), __DATE__);
|
static_cast<int>(B_TRANSLATION_REVSN_VER(STXT_TRANSLATOR_VERSION)),
|
||||||
|
__DATE__);
|
||||||
DrawString(detail, BPoint(xbold, yplain + ybold));
|
DrawString(detail, BPoint(xbold, yplain + ybold));
|
||||||
/* char copyright[] = "© 2002 OpenBeOS Project";
|
/* char copyright[] = "© 2002 OpenBeOS Project";
|
||||||
DrawString(copyright, BPoint(xbold, yplain * 2 + ybold));
|
DrawString(copyright, BPoint(xbold, yplain * 2 + ybold));
|
||||||
|
@ -34,18 +34,21 @@
|
|||||||
#include <View.h>
|
#include <View.h>
|
||||||
#include <MenuField.h>
|
#include <MenuField.h>
|
||||||
#include <MenuItem.h>
|
#include <MenuItem.h>
|
||||||
|
#include "TranslatorSettings.h"
|
||||||
|
|
||||||
class STXTView : public BView {
|
class STXTView : public BView {
|
||||||
public:
|
public:
|
||||||
STXTView(const BRect &frame, const char *name, uint32 resize,
|
STXTView(const BRect &frame, const char *name, uint32 resize,
|
||||||
uint32 flags);
|
uint32 flags, TranslatorSettings *settings);
|
||||||
// sets up the view
|
// sets up the view
|
||||||
|
|
||||||
~STXTView();
|
~STXTView();
|
||||||
// does nothing
|
// releases settings
|
||||||
|
|
||||||
virtual void Draw(BRect area);
|
virtual void Draw(BRect area);
|
||||||
// draws information about the STXTTranslator
|
// draws information about the STXTTranslator
|
||||||
|
private:
|
||||||
|
TranslatorSettings *fSettings;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // #ifndef STXTVIEW_H
|
#endif // #ifndef STXTVIEW_H
|
||||||
|
Loading…
Reference in New Issue
Block a user