summaryrefslogtreecommitdiffstats
path: root/languages/ruby/rubysupport_part.h
blob: eb4fbe1eb30d2b9117cde0a3df14f505e573618f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 *  Copyright (C) 2003 Marek Janukowicz <marek@janukowicz.net>
 */


#ifndef __KDEVPART_RUBYSUPPORT_H__
#define __KDEVPART_RUBYSUPPORT_H__

#include <tqguardedptr.h>

#include "kdevlanguagesupport.h"

class KDialogBase;
class TQPopupMenu;
class Context;
class KDevShellWidget;

class RubySupportPart : public KDevLanguageSupport
{
  Q_OBJECT
  TQ_OBJECT

public:

  RubySupportPart(TQObject *parent, const char *name, const TQStringList &);
  virtual ~RubySupportPart();

  virtual KDevDesignerIntegration *designer(KInterfaceDesigner::DesignerType type);

protected:
    virtual Features features();
    virtual KMimeType::List mimeTypes();

private slots:
    void projectConfigWidget(KDialogBase *dlg);
    void projectOpened();
    void projectClosed();
    void savedFile(const KURL &fileName);
    void addedFilesToProject(const TQStringList &fileList);
    void removedFilesFromProject(const TQStringList &fileList);
    void slotRun();
    void slotRunTestUnderCursor();
    void slotCreateSubclass();
    void contextMenu(TQPopupMenu *popup, const Context *context);
    void slotBrowse();

    void initialParse();

    void slotSwitchToController();
    void slotSwitchToView();
    void slotSwitchToModel();
    void slotSwitchToTest();

private:
    void startApplication(const TQString &program);
    TQString interpreter();
    TQString shell();
    TQString mainProgram();
    TQString runDirectory();
    TQString programArgs();
    TQString characterCoding();

    void maybeParse(const TQString fileName);
    void parse(const TQString &fileName);

    TQMap<KInterfaceDesigner::DesignerType, KDevDesignerIntegration*> m_designers;

    TQString m_contextFileName;
    TQCString m_shell;

    TQGuardedPtr<KDevShellWidget> m_shellWidget;
};


#endif